NoSuchModuleError:无法加载插件:sqlalchemy.dialects:redshift.psycopg2

时间:2015-11-19 02:13:40

标签: python-2.7 sqlalchemy vagrant amazon-redshift vagrantfile

我正在尝试从我的python代码连接到redshift。 我的pip安装:

psycopg2==2.6.1
redshift-sqlalchemy==0.4.1
SQLAlchemy==1.0.9

我的虚拟机有:

libpq-dev
python-psycopg2

但我还是得到了

 engine = create_engine('redshift+psycopg2://{}:{}@{}'.format(username, password, url))
  File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 386, in create_engine
    return strategy.create(*args, **kwargs)
  File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 51, in create
    entrypoint = u._get_entrypoint()
  File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/engine/url.py", line 131, in _get_entrypoint
    cls = registry.load(name)
  File "/opt/project/env/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 205, in load
    (self.group, name))
NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:redshift.psycopg2

使用相同的配置,我可以从我的笔记本电脑(mac)运行,但在Linux上,我猜有些软件包仍然缺失?任何建议将不胜感激,谢谢!

5 个答案:

答案 0 :(得分:6)

我发现一些教程将驱动程序列为: ThisAddin.cs ...使用它时,我收到了那个错误:

<块引用>

NoSuchModuleError:无法加载插件:sqlalchemy.dialects:redshift.psycopg2

只需将其更改为:

postgres+psycopg2://

立即修复。

答案 1 :(得分:1)

获取NoSuchModule异常的一种骨头方式是db连接字符串的格式错误。在我的情况下,当我改变

时,我得到了这个错误
DB_URI = 'postgresql://...'

DB_URI = 'pg8000://...'

但应该是:

DB_URI = 'postgresql+pg8000://

答案 2 :(得分:1)

我遇到了同样的问题,波纹管分辨率解决了它。

环境:

  

Python 3.7

     

Conda 4.6.14

依赖性:

  

sudo apt-get install python-pip

     

sudo apt-get install libpq-dev

     

pip install --user psycopg2

     

pip install --user sqlalchemy

     

pip install --user sqlalchemy-redshift

连接字符串:

connection_string = sa_url.URL(
        drivername='postgresql+psycopg2',
        username='admin',
        password='admin',
        host='redshiftone.********.us-west-2.redshift.amazonaws.com',
        port='5439',
        database='redshiftone')

答案 3 :(得分:0)

以下链接有助于使用psycopg2库通过Pythong连接到Redshift而不使用SQL alchemy依赖

http://sobhan06k.blogspot.in/2014/11/reach-redshift-using-python-library.html

答案 4 :(得分:0)

我遇到了同样的问题,当我删除__pycache__包中的redshift_sqlalchemy目录时,我解决了这个问题。

在我的案例中,转到你的网站包装是在我的virtualenv。

所以cdvirtualenvcd lib/python3.5/site-packages/redshift_sqlalchemy最后rm __pycache__