views:

135

answers:

1

I had problems installing psycopg2 in a virtualenv.

I tried different things explained there: http://www.saltycrane.com/blog/2009/07/using-psycopg2-virtualenv-ubuntu-jaunty/

The last thing I tried is this...
I created a virtualenv with -p python2.5 --no-site-packages
I installed libpq-dev: apt-get install libpq-dev

In the virtualenv, I did this: easy_install -i http://downloads.egenix.com/python/index/ucs4/ egenix-mx-base

Then when I tried pip install psycopg2==2.0.7, I got this error:

Installing collected packages: psycopg2
Running setup.py install for psycopg2
building 'psycopg2._psycopg' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.2.2 (dt dec ext pq3)" -DPG_VERSION_HEX=0x080404 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -DHAVE_PQPROTOCOL3=1 -I/usr/include/python2.5 -I. -I/usr/include/postgresql -I/usr/include/postgresql/8.4/server -c psycopg/psycopgmodule.c -o build/temp.linux-i686-2.5/psycopg/psycopgmodule.o -Wdeclaration-after-statement
psycopg/psycopgmodule.c:27:20: error: Python.h: No such file or directory
In file included from psycopg/psycopgmodule.c:31:
./psycopg/python.h:31:26: error: structmember.h: No such file or directory
./psycopg/python.h:34:4: error: #error "psycopg requires Python >= 2.4"
In file included from psycopg/psycopgmodule.c:32:

Does anyone have any idea how to solve that?
Thanks.

A: 

From python-list:

Diez: Install the python-dev-package. It contains the Python.h file, which the above error message pretty clearly says. Usually, it's a good idea to search package descriptions of debian/ubuntu packages for missing header files to know what to install.

Pascal: It's already installed; at least for Python 2.6, nor sure it's correct for Python 2.5. python2.5-dev is not available but python-old-doctools seems to replace it.

Diez: It is 100% not correct for python2.5. As the error message shows - it's missing. If it's not available somewhere, you should consider building python yourself, if you have to use 2.5.

Alex: Ubuntu 10.04 doesn't have a full Python 2.5 packaged, as evidenced by the lack of python2.5-dev. You need to use Python 2.6 or if you absolutely must use Python 2.5 build it from source, try a Debian package or switch distro. python-old-doctools does not replace python- dev, it looks like it was bodged to keep some latex tools working.

Pascal: I finally created a virtualenv with Python 2.6 and everything went fine (with the latest version of psycopg2).

Pascal Polleunus