web-dev-qa-db-ja.com

postgresqlとsqlalchemyの接続

これは本当に簡単な質問かもしれませんが、解決策はわかりません。 postgresqlに接続しようとすると、ここで何が起こっていますか?私はこのデータベースとプログラミングの分野で自習していますので、優しくしてください。次のコードを試してみると:

import sqlalchemy
db = sqlalchemy.create_engine('postgresql:///tutorial.db')

私はこのエラーを受け取ります:

トレースバック(最後の最後の呼び出し):ファイル ""、行1、db = sqlalchemy.create_engine( 'postgresql:///tutorial.db')ファイル "C:\ Python27\lib\site-packages\sqlalchemy-0.7。 5dev-py2.7.Egg\sqlalchemy\engine__init __。py "、行327、create_engineのreturn strategy.create(* args、** kwargs)ファイル" C:\ Python27\lib\site-packages\sqlalchemy-0.7.5dev -py2.7.Egg\sqlalchemy\engine\strategies.py "、64行目、create dbapi = dialect_cls.dbapi(** dbapi_args)File" C:\ Python27\lib\site-packages\sqlalchemy-0.7.5dev- py2.7.Egg\sqlalchemy\dialects\postgresql\psycopg2.py "、行289、dbapi psycopg = import( 'psycopg2')ImportError:psycopg2という名前のモジュールはありません

Psycopg2を個別にインストールする必要がありますか? postgresqlの正しい接続文字列は何ですか?

44

はい、psycopg2は基本的にPython PostgreSQL用のドライバーであり、個別にインストールする必要があります。

有効な接続文字列のリストはここにあります、あなたのものは少しオフです(以下のリンクで指定されているユーザー名、パスワード、ホスト名が必要です):

http://docs.sqlalchemy.org/en/latest/core/engines.html#postgresql

44
Uku Loskit

pip install SQLAlchemyおよびpip install psycopg2が必要です。 psycopg2を使用するSQLAlchemy接続文字列の例:

from sqlalchemy import create_engine
engine = create_engine('postgresql+psycopg2://user:password@hostname/database_name')

Psycopg2ドライバーのみを使用してデータベースに接続することもできます。

import psycopg2
conn_string = "Host='localhost' dbname='my_database' user='postgres' password='secret'"
conn = psycopg2.connect(conn_string)

ただし、psycopg2ドライバーを使用して接続すると、SQLAlchemyを利用できません。

35
andrew

はい、psycopg2を個別にインストールする必要があります。Linuxを使用している場合は、ターミナルに次の行を入力するだけです:$pip install psycopg2これが機能しない場合は、Sudoを使用してみてください:$Sudo pip install psycopg2