Python sqlalchemy.exc.ArgumentError:Can';加载插件:sqlalchemy。方言:驱动程序

Python sqlalchemy.exc.ArgumentError:Can';加载插件:sqlalchemy。方言:驱动程序,python,sqlalchemy,psycopg2,alembic,Python,Sqlalchemy,Psycopg2,Alembic,我正在尝试运行alembic迁移,运行时 alembic revision --autogenerate -m "Added initial tables" 它没有说 sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver 数据库url为 postgresql+psycopg2://dev:passwd@localhost/db 我甚至在我的virtualenv中安装了psycopg2 $yol

我正在尝试运行
alembic
迁移,运行时

alembic revision --autogenerate -m "Added initial tables"
它没有说

sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver
数据库url为

postgresql+psycopg2://dev:passwd@localhost/db
我甚至在我的virtualenv中安装了
psycopg2

$yolk -l
Flask-Login     - 0.1.3        - active
Flask-SQLAlchemy - 0.16         - active
Flask           - 0.9          - active
Jinja2          - 2.6          - active
Mako            - 0.7.3        - active
MarkupSafe      - 0.15         - active
Python          - 2.7.2        - active development (/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload)
SQLAlchemy      - 0.8.0        - active
Werkzeug        - 0.8.3        - active
alembic         - 0.4.2        - active
antiorm         - 1.1.1        - active
appscript       - 1.0.1        - active
distribute      - 0.6.27       - active
envoy           - 0.0.2        - active
osascript       - 0.0.4        - active
pep8            - 1.4.5        - active
pip             - 1.1          - active
psycopg2        - 2.4.6        - active
wsgiref         - 0.1.2        - active development (/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7)
yolk            - 0.4.3        - active

是什么导致了这个问题?

下面是如何产生这样的错误:

>>> from sqlalchemy import *
>>> create_engine("driver://")
Traceback (most recent call last):
... etc
sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver

因此,我要说的是,您实际上并没有使用您认为自己使用的postgresql URL—您可能在某处调用了默认生成的alembic.ini。

尝试使用这些命令来安装缺少的软件包:

sudo apt-get install libpq-dev 
sudo pip install psycopg2 
sudo pip install redshift-sqlalchemy 
sudo pip install sqlparse

对于那些没有注意到它的人来说,“默认生成的alembic.ini”zzzzeek指的是项目的根目录


整个问题是在
alembic.ini
文件中设置
sqlalchemy.url
config参数。此外,它可以按照中的说明以编程方式进行设置。

请注意,该方案实际上并没有指定驱动程序,而是指定方言:该方案的形式为
方言://
方言+驱动程序://

例如,连接到PostgreSQL数据库的正确URL将以例如
postgres://
(默认为使用
psycopg2
)或显式选择驱动程序(
postgres+psycopg2://
)或其他驱动程序开头

如果您碰巧只指定了
psycopg2
,则会出现错误

sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:psycopg2

获取要在Pyinstaller生成的.exe上运行的Teradata查询。我将引擎从SQLAlchemy更改为Teradata

发件人:

import sqlalchemy as sa
user, pasw, hostname = UserName,Password, 'myurl.com'
# connect
td_engine = sa.create_engine('teradata://{}:{}@{}:22/'.format(user,pasw,hostname),echo=True)
df = pd.read_sql_query(query1,connect)
致:

是的


它修复了问题

如果你有巨蟒,请卸载它。它正在anaconda路径中安装mysql连接器,您的代码可能正在python路径中查找。

我解决了这个问题,只需在notepad++中打开alembic.ini,然后将变量sqlachemy.url(大约在第38行)修改为我项目文件中的url。最有可能导致此错误的原因是它的开头有驱动程序

i、 e.将此行重命名为

sqlalchemy.url = sqlite:///name_of_my_database.db

你是对的,我在某个地方搞砸了(不确定具体在哪里),我能够推进这一进程,尽管我被耽搁了,如果你有任何想法,请告诉我。非常感谢您的帮助。我没有注意到
alembic
目录的父目录中创建了
alembic.ini
。谢谢
alembic.ini
可以在任何地方。Mike的nick只有3个气流(芹菜)用户:
pip install ibm_db_sa
sqlalchemy.url = sqlite:///name_of_my_database.db