2012-02-19 25 views
29

Sé que esto podría ser una pregunta muy simple, pero no sé la solución. ¿Qué está pasando aquí cuando trato de conectarme a postgresql? Soy autodidacta en este campo de base de datos y programación, así que sean amables conmigo. Cuando intento siguiente código:Conexión de postgresql con sqlalchemy

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

me sale este error:

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

¿Es necesario instalar psycopg2 por separado? ¿Cuál es la cadena de conexión correcta para postgresql?

Respuesta

30

Sí, psycopg2 son básicamente los controladores de Python para PostgreSQL que deben instalarse por separado.

una lista de cadenas de conexión válidos se puede encontrar aquí, el suyo es un poco fuera (es necesario el nombre de usuario, la contraseña y el nombre de host como se especifica en el siguiente enlace):

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

18

Usted haría necesita pip install SQLAlchemy y pip install psycopg2. Un ejemplo de una cadena de conexión SQLAlchemy que utiliza psycopg2:

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

También podría conectarse a la base de datos utilizando el controlador psycopg2 exclusivamente:

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

Sin embargo, utilizando el controlador psycopg2 conectar no tener ventaja de SQLAlchemy.

0

Sí, es necesario instalar psycopg2 separado, si estás usando Linux basta con que introduzca la siguiente línea en el terminal: $pip install psycopg2 si esto no funciona, trate de usar sudo: $sudo pip install psycopg2

Cuestiones relacionadas