Connecting postgresql with sqlalchemy

Question:

I know this might be really a simple question but I don’t know the solution. What is happening here when I try to connect to postgresql? I am self learner in this field of database and programming so please be gentle with me.
When I try following code:

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

I get this error:

Traceback (most recent call last):
File “”, line 1, in
db = sqlalchemy.create_engine(‘postgresql:///tutorial.db’)
File “C:Python27libsite-packagessqlalchemy-0.7.5dev-py2.7.eggsqlalchemyengine__init__.py”, line 327, in create_engine
return strategy.create(*args, **kwargs)
File “C:Python27libsite-packagessqlalchemy-0.7.5dev-py2.7.eggsqlalchemyenginestrategies.py”, line 64, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File “C:Python27libsite-packagessqlalchemy-0.7.5dev-py2.7.eggsqlalchemydialectspostgresqlpsycopg2.py”, line 289, in dbapi
psycopg = import(‘psycopg2’)
ImportError: No module named psycopg2

Do I need to install psycopg2 separately? What is the correct connection string for postgresql?

Asked By: Jack_of_All_Trades

||

Answers:

Yes, psycopg2 are basically the Python drivers for PostgreSQL that need to be installed separately.

A list of valid connection strings can be found here, yours is a bit off (you need to the username, the password and hostname as specified in the link below):

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

Answered By: Uku Loskit

You would need to pip install SQLAlchemy and pip install psycopg2.
An example of a SQLAlchemy connection string that uses psycopg2:

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

You could also connect to your database using the psycopg2 driver exclusively:

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

However, using the psycopg2 driver to connect does not take advantage of SQLAlchemy.

Answered By: andrew

Yes, you need to install psycopg2 separately, if you’re using linux you can simply enter the following line to the terminal: $pip install psycopg2 if this doesn’t work try using sudo: $sudo pip install psycopg2