web-dev-qa-db-fra.com

Connecter postgresql avec sqlalchemy

Je sais que c'est peut-être une question simple mais je ne connais pas la solution. Que se passe-t-il ici lorsque j'essaie de me connecter à postgresql? Je suis auto-apprenant dans ce domaine de la base de données et de la programmation, soyez donc gentil avec moi . Lorsque j'essaie de suivre le code:

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

Je reçois cette erreur:

Traceback (dernier appel passé): Fichier "", ligne 1, dans db = sqlalchemy.create_engine ('postgresql: ///tutorial.db') Fichier "C:\Python27\lib\site-packages\sqlalchemy-0.7.5dev-py2.7.Egg\sqlalchemy\engine__init __. Py", ligne 327, dans create_engine retour stratégie.create (* arguments, ** kwargs) Fichier "C:\Python27\lib\site-packages\sqlalchemy-0.7.5dev-py2.7.Egg\sqlalchemy\engine\strategies.py", ligne 64, dans create dbapi = dialect_cls.dbapi (** dbapi_args) Fichier "C:\Python27\lib\site-packages\sqlalchemy-0.7.5dev-py2.7.Egg\sqlalchemy\dialect\postgresql\psycopg2.py", ligne 289, dans dbapi psycopg = import ('psycopg2') ImportError: Aucun module nommé psycopg2

Dois-je installer psycopg2 séparément? Quelle est la chaîne de connexion correcte pour postgresql?

37
Jack_of_All_Trades

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

Vous trouverez une liste des chaînes de connexion valides ici. La vôtre est un peu éteinte (vous devez connaître le nom d'utilisateur, le mot de passe et le nom d'hôte, comme indiqué dans le lien ci-dessous):

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

38
Uku Loskit

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 pouvez également vous connecter à votre base de données à l’aide du pilote psycopg2 exclusivement:

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

Cependant, l'utilisation du pilote psycopg2 pour se connecter ne tire pas parti de SQLAlchemy.

28
andrew

Oui, vous devez installer psycopg2 séparément. Si vous utilisez Linux, vous pouvez simplement entrer la ligne suivante dans le terminal: $pip install psycopg2 si cela ne fonctionne pas, essayez d’utiliser Sudo: $Sudo pip install psycopg2