с 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