Psycopg2无法在python 3上安装,pip发出致命错误

时间:2014-02-08 19:08:37

标签: pip fedora python-3.3 psycopg2

$ yum install python3 postgresql python-devel libpqxx-devel
Loaded plugins: langpacks, refresh-packagekit
Package python3-3.3.2-8.fc20.x86_64 already installed and latest version
Package postgresql-9.3.2-2.fc20.x86_64 already installed and latest version
Package python-devel-2.7.5-9.fc20.x86_64 already installed and latest version
Package 1:libpqxx-devel-3.2-0.5.fc20.x86_64 already installed and latest version
Nothing to do

我正在尝试在我的virtualenv中安装psycopg2以将django与postgresql数据库连接。

在Fedora 19和postgresql-9.2中,pg_config的路径是:

/usr/pgsql-9.2/bin

在Fedora 20中,此目录不存在。

但是pg_config可以在/usr/bin/pg_config中找到。

尝试安装psycopg2:

 $ export PATH=$PATH:/usr/bin; pip install psycopg2
Downloading/unpacking psycopg2
  Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded
  Running setup.py egg_info for package psycopg2

... -compiling output here- ...

gcc -pthread -Wno-unused-result -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090302 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/usr/include/python3.3m -I. -I/usr/include -I/usr/include/pgsql/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.3/psycopg/psycopgmodule.o -Wdeclaration-after-statement

In file included from psycopg/psycopgmodule.c:27:0:

./psycopg/psycopg.h:30:20: fatal error: Python.h: No such file or directory

 #include <Python.h>

                    ^

compilation terminated.

error: command 'gcc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /home/flyer/.virtualenvs/p3test/bin/python3 -c "import setuptools;__file__='/home/flyer/.virtualenvs/p3test/build/psycopg2/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-mrsky4-record/install-record.txt --single-version-externally-managed --install-headers /home/flyer/.virtualenvs/p3test/include/site/python3.3 failed with error code 1 in /home/flyer/.virtualenvs/p3test/build/psycopg2
Storing complete log in /home/flyer/.pip/pip.log

感谢您的帮助。

4 个答案:

答案 0 :(得分:8)

您缺少python3包含文件

./psycopg/psycopg.h:30:20: fatal error: Python.h: No such file or directory

您可以在python3-devel包中找到它们。

答案 1 :(得分:3)

安装python3-devel软件包以使其正常工作

sudo dnf install python3-devel

如果它工作正常或者它需要libpq-fe.h文件,那么使用以下命令安装它:

sudo dnf install postgresql-devel

答案 2 :(得分:1)

如其他答案中所示,这是由于没有正确的Python&#34; devel&#34;包安装。在CentOS上,Python&#34; devel&#34; rpm包使用限定版本进行编号。例如,在撰写本文时,当前版本是:

对于epel存储库

python34-devel

python36u-devel用于ius存储库

示例Yum命令(假设已配置EPEL repository):

sudo yum install python34-devel

服务器故障的相关答案:https://serverfault.com/questions/710354/repository-for-python3-devel-on-centos-7

答案 3 :(得分:1)

Ubuntu 上。我用以下方法解决了这个问题:

sudo apt-get install libpq-dev