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
Whayがこの問題を引き起こしている可能性がありますか?
そのようなエラーを生成する方法は次のとおりです。
>>> 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をどこかに呼び出しているでしょう。
気付いていない人のために、「default-generated alembic.ini」zzzzeekはプロジェクトのルートディレクトリにあります。
全体の問題は、sqlalchemy.url
ファイルでalembic.ini
configパラメーターを設定することです。また、 https://stackoverflow.com/a/15668175/97338 で説明されているように、プログラムで設定することもできます。
スキームは実際にはドライバーを指定しませんが、方言:スキームはdialect://
またはdialect+driver://
の形式です。
たとえば、PostgreSQLデータベースに接続するための正しいURLは、たとえばpostgres://
(デフォルトではpsycopg2
を使用する)で始まるか、ドライバーを明示的に選択する(postgres+psycopg2://
または別のドライバーで) 。
onlypsycopg2
を指定した場合、エラーが発生します
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
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)
に:
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")