NoSuchModuleError:无法加载插件:sqlalchemy.dialects:snowflake

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)


M.C*_*ush 3

尝试添加一些额外的导入:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from snowflake.sqlalchemy import URL
Run Code Online (Sandbox Code Playgroud)

这为我解决了这个问题。