103 votes

Connecter postgresql avec sqlalchemy

Je sais que cette question pourrait être vraiment simple mais je ne connais pas la solution. Que se passe-t-il ici lorsque j'essaie de me connecter à postgresql ? Je suis autodidacte dans ce domaine de la base de données et de la programmation alors s'il vous plaît, soyez indulgent avec moi. Lorsque j'essaie le code suivant :

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

Je reçois cette erreur :

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

Est-ce que j'ai besoin d'installer psycopg2 séparément ? Quel est le bon string de connexion pour postgresql ?

122voto

andrew Points 1895

Vous auriez besoin de pip install SQLAlchemy et pip install psycopg2. Un exemple de chaîne de connexion SQLAlchemy qui utilise psycopg2:

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

Vous pourriez également vous connecter à votre base de données en utilisant exclusivement le pilote psycopg2:

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

Cependant, utiliser le pilote psycopg2 pour se connecter ne tire pas parti de SQLAlchemy.

73voto

Uku Loskit Points 15705

Oui, psycopg2 sont essentiellement les pilotes Python pour PostgreSQL qui doivent être installés séparément.

Une liste de chaînes de connexion valides peut être trouvée ici, la vôtre est un peu incorrecte (vous devez spécifier le nom d'utilisateur, le mot de passe et le nom d'hôte tel que spécifié dans le lien ci-dessous) :

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

3voto

Oui, vous devez installer psycopg2 séparément, si vous utilisez linux, vous pouvez simplement saisir la ligne suivante dans le terminal: $pip install psycopg2 si cela ne fonctionne pas, essayez d'utiliser sudo: $sudo pip install psycopg2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X