使用sqlalchemy连接postgresql

时间:2012-02-19 22:17:44

标签: python database postgresql orm sqlalchemy

我知道这可能是一个简单的问题,但我不知道解决方案。当我尝试连接到postgresql时,这里发生了什么?我是这个数据库和编程领域的自学者,所以请温柔地对待我。 当我尝试使用代码时:

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

我收到此错误:

  

追踪(最近一次通话):      文件“”,第1行,in       db = sqlalchemy.create_engine('postgresql:///tutorial.db')     在create_engine中输入文件“C:\ Python27 \ lib \ site-packages \ sqlalchemy-0.7.5dev-py2.7.egg \ sqlalchemy \ engine__init __。py”,第327行       return strategy.create(* args,** kwargs)     在创建文件“C:\ Python27 \ lib \ site-packages \ sqlalchemy-0.7.5dev-py2.7.egg \ sqlalchemy \ engine \ strategies.py”,第64行       dbapi = dialect_cls.dbapi(** dbapi_args)     dbapi中的文件“C:\ Python27 \ lib \ site-packages \ sqlalchemy-0.7.5dev-py2.7.egg \ sqlalchemy \ dialects \ postgresql \ psycopg2.py”,第289行       psycopg = 导入('psycopg2')   ImportError:没有名为psycopg2的模块

我是否需要单独安装psycopg2? postgresql的正确连接字符串是什么?

3 个答案:

答案 0 :(得分:40)

是的,psycopg2基本上是PostgreSQL的Python驱动程序,需要单独安装。

可以在此处找到有效连接字符串的列表,您的有点连接(您需要使用以下链接中指定的用户名,密码和主机名):

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

答案 1 :(得分:32)

您需要pip install SQLAlchemypip 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。

答案 2 :(得分:0)

是的,你需要单独安装psycopg2,如果你正在使用linux,你只需在终端输入以下行:$pip install psycopg2如果这不起作用,请尝试使用sudo:{{ 1}}