2012-02-19 44 views
29

Tôi biết điều này có thể thực sự là một câu hỏi đơn giản nhưng tôi không biết giải pháp. Điều gì đang xảy ra ở đây khi tôi cố gắng kết nối với postgresql? Tôi là người tự học trong lĩnh vực cơ sở dữ liệu và lập trình này, vì vậy hãy nhẹ nhàng với tôi. Khi tôi cố gắng mã sau:Kết nối postgresql với sqlalchemy

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

tôi nhận được lỗi này:

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

Tôi có cần phải cài đặt psycopg2 riêng? Chuỗi kết nối chính xác cho postgresql là gì?

Trả lời

30

Có, psycopg2 về cơ bản là trình điều khiển Python cho PostgreSQL cần được cài đặt riêng.

Một danh sách các chuỗi kết nối hợp lệ có thể được tìm thấy ở đây, bạn là một chút tắt (bạn cần tên người dùng, mật khẩu và tên máy theo quy định tại các liên kết bên dưới):

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

18

Bạn sẽ cần phải pip install SQLAlchemypip install psycopg2. Một ví dụ về một chuỗi kết nối SQLAlchemy sử dụng psycopg2:

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

Bạn cũng có thể kết nối với cơ sở dữ liệu của bạn bằng cách sử dụng trình điều khiển psycopg2 độc quyền:

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

Tuy nhiên, bằng cách sử dụng trình điều khiển psycopg2 để kết nối không mất lợi thế của SQLAlchemy.

0

Có, bạn cần phải cài đặt psycopg2 riêng biệt, nếu bạn đang sử dụng Linux bạn chỉ có thể nhập dòng sau vào terminal: $pip install psycopg2 nếu điều này không làm việc hãy thử sử dụng sudo: $sudo pip install psycopg2

Các vấn đề liên quan