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

时间:2018-11-13 15:54:06

标签: python sqlalchemy snowflake

我已经安装了所有必需的软件包:

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中运行它)

5 个答案:

答案 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