我已经安装了所有必需的软件包:
pip install --upgrade snowflake-sqlalchemy
我正在从雪花文档中运行以下测试代码:
from sqlalchemy import create_engine
engine = create_engine(
'snowflake://{user}:{password}@{account}/'.format(
user='<your_user_login_name>',
password='<your_password>',
account='<your_account_name>',
)
)
try:
connection = engine.connect()
results = connection.execute('select current_version()').fetchone()
print(results[0])
finally:
connection.close()
engine.dispose()
我的输出应为雪花版本,例如1.48.0
但是我得到了错误:NoSuchModuleError:无法加载插件:sqlalchemy.dialects:snowflake
(我正在尝试在Anaconda中运行它)
答案 0 :(得分:5)
当我尝试将代码部署到Azure Function应用程序时,我遇到了类似的问题。当我在本地运行代码时,sqlalchemy
会找到该模块,但是它无法解决远程部署和执行时的方言。
我在调用create_engine
之前通过运行以下命令解决了该问题:
from sqlalchemy.dialects import registry
...
registry.register('snowflake', 'snowflake.sqlalchemy', 'dialect')
我怀疑snowflake-sqlalchemy
在某些环境中无法自动注册。
答案 1 :(得分:1)
出现此错误一般是由于 sqlalchemy 包安装不当。检查 sqlalchemy.dialects 文件夹以确保您的 dbapi 文件夹存在。尝试升级您的 sqlalchemy 包。
pip install --upgrade sqlalchemy
答案 2 :(得分:0)
为我工作:
pip freeze | grep snowflake-sqlalchemy
snowflake-sqlalchemy==1.1.13
$ipython
In [1]: from sqlalchemy import create_engine
In [2]: engine = create_engine('snowflake://test')
没有问题
答案 3 :(得分:0)
尝试添加几个其他导入:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from snowflake.sqlalchemy import URL
这为我解决了这个问题。
答案 4 :(得分:-1)
也许您正在使用conda?然后
conda install --yes snowflake-sqlalchemy
注意,它仍然还需要安装snowflake-connector-python
!