【问题标题】:NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:snowflakeNoSuchModuleError:无法加载插件:sqlalchemy.dialects:snowflake
【发布时间】:2019-04-16 12:11:34
【问题描述】:

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

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: Can't load plugin: sqlalchemy.dialects:snowflake

(我正在尝试在 Anaconda 中运行它)

【问题讨论】:

  • 我也遇到了同样的问题。但是我用上面你写的命令行升级snowflake-sqlalchemy后,连接成功了。
  • 在我升级snowflake-sqlalchemy后面临同样的错误信息并且没有解决方案

标签: python sqlalchemy snowflake-cloud-data-platform


【解决方案1】:

为我工作:

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')

没有问题

【讨论】:

  • “它对我有用”并不是这个问题的真正答案
【解决方案2】:

尝试添加几个额外的导入:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from snowflake.sqlalchemy import URL

这为我解决了这个问题。

【讨论】:

    【解决方案3】:

    也许您正在使用 conda?那么

    conda install --yes snowflake-sqlalchemy
    

    注意,它还需要安装snowflake-connector-python

    【讨论】:

    • PackagesNotFoundError: 当前频道不提供以下软件包:- snowflake-sqlalchemy
    【解决方案4】:

    我在尝试将代码部署到 Azure Function App 时遇到了类似问题。 sqlalchemy在本地运行代码时会找到该模块,但无法解析远程部署和执行的方言。

    我在调用 create_engine 之前通过运行以下命令解决了该问题:

    from sqlalchemy.dialects import registry
    
    ...
    
    registry.register('snowflake', 'snowflake.sqlalchemy', 'dialect')
    

    我怀疑snowflake-sqlalchemy 在某些环境中无法自行注册。

    【讨论】:

    • 我的正好相反。在我的 azure 函数(docker 容器)中工作,但不在本地(在 docker 容器之外)
    • 谢谢!我遇到了完全相同的问题,这为我解决了问题。
    【解决方案5】:

    此错误通常是由于 sqlalchemy 软件包安装错误造成的。检查 sqlalchemy.dialects 文件夹以确保您的 dbapi 文件夹存在。尝试升级你的 sqlalchemy 包。

    pip install --upgrade sqlalchemy

    【讨论】:

      猜你喜欢
      • 2019-07-29
      • 2016-02-21
      • 2019-03-28
      • 2023-01-17
      • 2021-11-04
      • 2020-03-27
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多