2012-02-19 167 views
29

我知道這可能是一個非常簡單的問題,但我不知道解決方案。當我嘗試連接到postgresql時發生了什麼?我是數據庫和編程領域的自學者,所以請和我一起溫柔。 當我嘗試下面的代碼:連接postgresql和sqlalchemy

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

我得到這個錯誤:

Traceback (most recent call last): File "", line 1, in db = sqlalchemy.create_engine('postgresql:///tutorial.db') File "C:\Python27\lib\site-packages\sqlalchemy-0.7.5dev-py2.7.egg\sqlalchemy\engine__init__.py", line 327, in create_engine return strategy.create(*args, **kwargs) File "C:\Python27\lib\site-packages\sqlalchemy-0.7.5dev-py2.7.egg\sqlalchemy\engine\strategies.py", line 64, in 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", line 289, in dbapi psycopg = import('psycopg2') ImportError: No module named psycopg2

我是否需要單獨安裝psycopg2?什麼是postgresql的正確連接字符串?

回答

18

你會需要pip install SQLAlchemypip install psycopg2。 使用psycopg2一個SQLAlchemy的連接字符串的例子:

from sqlalchemy import create_engine 
engine = create_engine('postgresql+psycopg2://user:[email protected]/database_name') 

你也可以使用專門的psycopg2驅動程序連接到數據庫:

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

但是,使用psycopg2驅動程序連接不走SQLAlchemy的優勢。

0

是的,你需要單獨安裝psycopg2,如果你使用Linux,你可以簡單地輸入以下行到終端:$pip install psycopg2如果這不起作用嘗試使用sudo:$sudo pip install psycopg2