Установка psycopg2 в virtualenv (Ubuntu 10.04, Python 2.5)

У меня были проблемы с установкой psycopg2 в virtualenv.

Я пробовал разные вещи, описанные там: http://www.saltycrane.com/blog/2009/07/using-psycopg2-virtualenv-ubuntu-jaunty/

Последнее, что я пробовал, это...
Я создал виртуальную среду с -p python2.5 --no-site-packages
Я установил libpq-dev: apt-get install libpq-dev

В виртуалке я сделал так: easy_install -i http://downloads.egenix.com/python/index/ucs4/ egenix-mx-base

Затем, когда я попробовал pip install psycopg2==2.0.7, я получил эту ошибку:

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:

Кто-нибудь знает, как это решить?
Спасибо.


person Pascal Polleunus    schedule 02.10.2010    source источник


Ответы (1)


Из python-списка:

Диз: установите пакет python-dev. Он содержит файл Python.h, о котором довольно ясно говорится в приведенном выше сообщении об ошибке. Обычно хорошей идеей является поиск в описаниях пакетов debian/ubuntu отсутствующих файлов заголовков, чтобы знать, что устанавливать.

Pascal: он уже установлен; по крайней мере, для Python 2.6 и не уверен, что это правильно для Python 2.5. python2.5-dev недоступен, но python-old-doctools, кажется, заменяет его.

Диз: Это на 100 % не правильно для python2.5. Судя по сообщению об ошибке - его нет. Если он где-то недоступен, вам следует подумать о создании python самостоятельно, если вам нужно использовать 2.5.

Алекс: Ubuntu 10.04 не содержит полного пакета Python 2.5, о чем свидетельствует отсутствие python2.5-dev. Вам нужно использовать Python 2.6 или, если вам абсолютно необходимо использовать Python 2.5, соберите его из исходного кода, попробуйте пакет Debian или смените дистрибутив. python-old-doctools не заменяет python-dev, похоже, что он был создан для того, чтобы некоторые латексные инструменты работали.

Pascal: наконец-то я создал виртуальную среду с Python 2.6, и все прошло нормально (с последней версией psycopg2).

person Pascal Polleunus    schedule 05.10.2010