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