с SQLAlchemy.экскавация.ArgumentError: не удается загрузить плагин: sqlalchemy.диалекты: водитель
Я пытаюсь запустить 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
и 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
что может быть причиной этой проблемы?
4 ответов
вот как создать такую ошибку:
>>> from sqlalchemy import *
>>> create_engine("driver://")
Traceback (most recent call last):
... etc
sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver
поэтому я бы сказал, что вы на самом деле не используете URL - адрес postgresql, который вы думаете,-вы, вероятно, вызываете созданный по умолчанию перегонный куб.где-то здесь.
для тех, кто этого не заметил, "созданный по умолчанию перегонный куб".ini-файл" zzzzeek ссылается на is в корневом каталоге проекта.
вся проблема заключается в установке sqlalchemy.url
параметр config в . Кроме того, его можно установить программно, как описано вhttps://stackoverflow.com/a/15668175/973380.
обратите внимание, что схема фактически не указывает драйвер, но говор: схема имеет форму dialect://
или dialect+driver://
.
например, правильные URL-адреса для подключения к базе данных PostgreSQL будут начинаться с например postgres://
(по умолчанию используется psycopg2
), или выбор драйвера явно (postgres+psycopg2://
, или с другим водителем).
Если вам случится, чтобы указать только psycopg2
вы получите ошибка
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:psycopg2
попробуйте эти команды для установки отсутствующих пакетов:
sudo apt-get install libpq-dev
sudo pip install psycopg2
sudo pip install redshift-sqlalchemy
sudo pip install sqlparse