2012-02-19 123 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