Han*_*ana 11 python sqlalchemy snowflake-cloud-data-platform
我已经安装了所有必要的软件包:
pip install --upgrade snowflake-sqlalchemy
Run Code Online (Sandbox Code Playgroud)
我正在从雪花文档中运行这个测试代码:
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()
Run Code Online (Sandbox Code Playgroud)
我的输出应该是雪花版本,例如 1.48.0
但我收到错误:NoSuchModuleError:无法加载插件:sqlalchemy.dialects:snowflake
(我正在尝试在 Anaconda 中运行它)
Jak*_*e Z 11
我在尝试将代码部署到 Azure Function App 时遇到了类似的问题。sqlalchemy当我在本地运行代码时会找到该模块,但它无法解析远程部署和执行的方言。
我通过在调用之前运行以下命令解决了那里的问题create_engine:
from sqlalchemy.dialects import registry
...
registry.register('snowflake', 'snowflake.sqlalchemy', 'dialect')
Run Code Online (Sandbox Code Playgroud)
我怀疑snowflake-sqlalchemy在某些环境中无法自我注册。
小智 5
此错误通常是由于 sqlalchemy 软件包安装错误造成的。检查该sqlalchemy.dialects文件夹以确保您的 dbapi 文件夹存在。
尝试升级您的 sqlalchemy 软件包:
pip install --upgrade sqlalchemy
Run Code Online (Sandbox Code Playgroud)
pip install --upgrade snowflake-sqlalchemy为我工作
https://docs.snowflake.com/en/user-guide/sqlalchemy.html#installing-snowflake-sqlalchemy
尝试添加一些额外的导入:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from snowflake.sqlalchemy import URL
Run Code Online (Sandbox Code Playgroud)
这为我解决了这个问题。