Sqlalchemy.exc.ArgumentError: невозможно загрузить плагин: sqlalchemy.dialects: driver
Я пытаюсь запустить миграцию alembic
и при запуске
alembic revision --autogenerate -m "Added initial tables"
Не получается сказать
sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver
URL-адрес базы данных
postgresql+psycopg2://dev:[email protected]/db
и у меня даже есть psycopg2
, установленный в моем virtualenv
$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
Может ли быть причиной этой проблемы?
Ответы
Ответ 1
Здесь, как создать такую ошибку:
>>> from sqlalchemy import *
>>> create_engine("driver://")
Traceback (most recent call last):
... etc
sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver
поэтому я бы сказал, что вы на самом деле не используете URL-адрес postgresql, который, по вашему мнению, вы есть, вы, вероятно, вызываете созданный по умолчанию файл alembic.ini.
Ответ 2
Для тех, кто этого не заметил, "созданный по умолчанию alembic.ini" zzzzeek относится к корневому каталогу проекта.
Вся проблема заключается в установке параметра конфигурации sqlalchemy.url
в файле alembic.ini
. Кроме того, он может быть установлен программно, как описано в fooobar.com/questions/350782/....
Ответ 3
Обратите внимание, что схема фактически не указывает драйвер, а диалект: схема имеет форму dialect://
или dialect+driver://
.
Например, правильные URL-адреса для подключения к базе данных PostgreSQL начинаются, например, с помощью postgres://
(который по умолчанию использует psycopg2
) или явно выбирает драйвер (postgres+psycopg2://
или с другим драйвером).
Если вы указали только psycopg2
, вы получите сообщение об ошибке
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:psycopg2
Ответ 4
Попробуйте эти команды для установки отсутствующих пакетов:
sudo apt-get install libpq-dev
sudo pip install psycopg2
sudo pip install redshift-sqlalchemy
sudo pip install sqlparse
Ответ 5
Чтобы запустить запросы Teradata на .exe, созданном Pyinstaller. Я изменил свой движок с 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)
Для того, чтобы:
import teradata
user, pasw, hostname = UserName,Password, 'myurl.com'
td = teradata.UdaExec (appName="test", version="1.0", logConsole=True)
td_engine = td.connect(method="odbc",system=hostname, username=user,password=pasw,driver="Teradata")