错误:安装psycopg2时命令'gcc'失败并退出状态

ws_*_*123 23 python gcc centos5 centos openerp

我需要安装psycopg2openerp安装过程,但我总是发现错误.我已经使用pipeasy_install,我的gcc是最新的版本.真的需要你的帮助来解决我的问题......

这是我对easy_install的完整错误..

[root@server01 ~]# easy_install psycopg2    
Searching for psycopg2    
Reading http://pypi.python.org/simple/psycopg2/    
Reading http://initd.org/psycopg/    
Reading http://initd.org/projects/psycopg2    
Best match: psycopg2 2.4.5    
Downloading http://initd.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz    
Processing psycopg2-2.4.5.tar.gz    
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-anWVvJ/psycopg2-2.4.5/egg-dist-tmp-cZbdtn

no previously-included directories found matching 'doc/src/_build' In file included from psycopg/psycopgmodule.c:27:
./psycopg/psycopg.h:31:22: error: libpq-fe.h: No such file or directory In file included from psycopg/psycopgmodule.c:29:

...

error: Setup script exited with error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

Jon*_*nts 34

你需要安装PostgreSQL的开发包,例如在Ubuntu下是sudo apt-get install libpq-dev...而对于CentOS来说它是yum install postgresql-devel


Nic*_*ica 31

对于CentOS的情况,我遇到了同样的问题,我解决了安装这些软件包的问题:

sudo yum install postgresql-libs
sudo yum install postgresql-devel
sudo yum install python-devel
Run Code Online (Sandbox Code Playgroud)

只有这样,我才能成功地执行:

sudo easy_install psycopg2
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你没有假设每个人都使用Debian.+1 (8认同)
  • 对于 python3.x,“sudo yum install python-devel”应更改为“sudo yum install python3-devel” (2认同)

Her*_*oic 14

可能您的系统缺少Python标头.要解决此问题,请运行:

sudo apt-get install python-dev
Run Code Online (Sandbox Code Playgroud)

要么

sudo apt-get install python3-dev
Run Code Online (Sandbox Code Playgroud)

  • 除非您使用的是CentOS (2认同)

小智 8

在EC2实例上的新的ubuntu 14.04.2 LTS上,我能够在安装以下软件包后安装psycopg2:

sudo apt-get install gcc
sudo apt-get install postgres-xc-server-dev
sudo apt-get install libpq-dev
sudo apt-get install postgresql-client-common
sudo apt-get install postgresql-common
Run Code Online (Sandbox Code Playgroud)

在一个新的AMI linux(CentOS)实例上:

sudo yum install postgresql-devel
sudo yum install gcc*
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你,

埃雷兹


nec*_*ciu 5

对于Ubuntu 14.04,从 Docker 镜像来看,python:3.4.3-slim这个组合对我有用:

sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get install -y python3.4-dev
sudo apt-get install -y libpq-dev

pip3 install psycopg2
Run Code Online (Sandbox Code Playgroud)

注意build-essential包。这对我来说至关重要。


Aar*_*son 5

我一直在尝试在普通的Amazon Linux EC2实例上安装pgsql,并且一直在收到此错误.根据Nicolás的回答,我安装了他建议的软件包列表,但我继续得到错误.仔细查看错误,我注意到该gcc命令包含pgsql93文件:

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.6.1 (dt dec pq3 ext lo64)" -DPG_VERSION_HEX=0x09030A -DHAVE_LO64=1 -I/usr/include/python2.7 -I. -I/usr/include/pgsql93 -I/usr/include/pgsql93/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement

看着/usr/include/我看到pgsql92/但不是pgsql93/.所以我看看安装了什么与pgsql相关的yum软件包,我注意到了这些:

postgresql92.x86_64 postgresql92-devel.x86_64 postgresql92-libs.x86_64 postgresql93.x86_64 postgresql93-libs.x86_64

对我来说就像应该有一个postgresql93-devel,所以我试过:

sudo yum install postgresql93-devel

这解决了我的问题!所以我猜主题是:看看gcc调用,然后看看它是什么导入的.从那里跟着面包屑.


Joe*_*icz 5

我有这个问题,但是通过运行解决了:

pip install -Iv psycopg2==2.7.7
Run Code Online (Sandbox Code Playgroud)

安装最新版本+ python3.7时出现问题


Dan*_*her 2

gcc 调用失败,gcc 无法编译源代码。原因大概是

./psycopg/psycopg.h:31:22: error: libpq-fe.h: No such file or directory In file included from psycopg/psycopgmodule.c:29:
Run Code Online (Sandbox Code Playgroud)

如果您有标题,则该标题libpq-fe.h不在搜索路径中。