2013-03-26 10 views
15

sto cercando di eseguire alembic migrazione e quando corrosqlalchemy.exc.ArgumentError: Impossibile caricare plugin: sqlalchemy.dialects: autista

alembic revision --autogenerate -m "Added initial tables" 

fallisce dicendo

sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver 

database url è

postgresql+psycopg2://dev:[email protected]/db 

e ho anche psycopg2 installato nel mio 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 

Whay potrebbe causare questo problema?

risposta

27

Ecco come produrre un errore del genere:

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

quindi direi che non sono in realtà utilizza l'URL PostgreSQL pensi di essere - probabilmente sta chiamando su un alambicco default-generated. ini da qualche parte.

+0

Hai ragione, avrei dovuto vedermela da qualche parte (non sono sicuro esattamente dove), sono in grado di spostare il processo in avanti, anche se sollevato http://stackoverflow.com/questions/15660676/alembic-autogenerate-producing-empty-migration, fammi sapere se hai qualche idea. GRAZIE molto per il tuo aiuto – daydreamer

1

Prova i comandi per installare i pacchetti mancanti:

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

Per coloro che non hanno notato, il "default-generated alembic.ini" zzzzeek si riferisce è nella directory principale del progetto .

L'intero problema è l'impostazione del parametro di configurazione sqlalchemy.url nel file alembic.ini. Inoltre, può essere impostato a livello di programmazione come spiegato in https://stackoverflow.com/a/15668175/973380.

+0

il 'alembic.ini' può essere * ovunque *. E il nick di Mike ha solo 3 'z's: d –

1

Si noti che il sistema in realtà non specificare il driver, ma il dialetto : lo schema è di forma dialect://odialect+driver://.

Ad esempio gli URL corretti per connettersi a un database PostgreSQL avrà inizio con ad esempio postgres:// (che per impostazione predefinita utilizzando psycopg2), o la scelta di un driver in modo esplicito (postgres+psycopg2://, o con un altro driver).

Se vi capita di specificare solopsycopg2 si otterrà l'errore

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