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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12911717/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-18 12:09:42  来源:igfitidea点击:

error: command 'gcc' failed with exit status when installing psycopg2

pythongcccentosopenerpcentos5

提问by ws_123

i need to install psycopg2for openerpinstallation process, but i always found that error. i've already used pipand easy_install, my gccis the latest version. Really need your help to solve my problem...

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

this is my complete error with easy_install..

这是我对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

回答by Daniel Fischer

The invocation of gcc failed, gcc couldn't compile the source. Probably the cause is

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

./psycopg/psycopg.h:31:22: error: libpq-fe.h: No such file or directory In file included from psycopg/psycopgmodule.c:29:

that the header libpq-fe.his nowhere in the search path if you have it at all.

libpq-fe.h如果您有标题,则搜索路径中无处可寻。

回答by Jon Clements

You'll need to install the development package for PostgreSQL, which for instance under Ubuntu is a sudo apt-get install libpq-dev... and for CentOS it's yum install postgresql-devel

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

回答by Heroic

May Your system is missing the Python headers. To fix this, run:

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

sudo apt-get install python-dev

or

或者

sudo apt-get install python3-dev

回答by Nicolás Ozimica

For the case of CentOS, I had this very same problem, that I solved installing these packages:

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

sudo yum install postgresql-libs
sudo yum install postgresql-devel
sudo yum install python-devel

only then, I was able to perform successfully:

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

sudo easy_install psycopg2

回答by Jeff

For me, the missing package was

对我来说,丢失的包裹是

libpqxx-devel.x86_64

回答by schnbrg

This worked for me on Ubuntu Server 14.10 64-bit:

这在 Ubuntu Server 14.10 64 位上对我有用:

sudo apt-get install libpqxx-dev

回答by neciu

For Ubuntu 14.04, from Docker image python:3.4.3-slimthis combination worked for me:

对于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

Note build-essentialpackage. It was crucial in my case.

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

回答by ErezK

On a fresh ubuntu 14.04.2 LTS on an EC2 instance, I was able to install psycopg2 after instaling the following packages:

在 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

And on a fresh AMI linux (CentOS) instance:

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

sudo yum install postgresql-devel
sudo yum install gcc*

Hope it helps,

希望能帮助到你,

Erez

埃雷兹

回答by Aaron Torgerson

I've been trying to install pgsql on a plain Amazon Linux EC2 instance, and have been getting this error. Per Nicolás answer, I installed his suggested list of packages, but I continued to get the error. Looking more closely at the error, I noticed that the gcccommand was including pgsql93 files:

我一直在尝试在普通的 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

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

Looking in /usr/include/I see pgsql92/but not pgsql93/. So I took a look at what pgsql-related yum packages were installed and I noticed these:

看着/usr/include/我看到pgsql92/但没有pgsql93/。所以我查看了安装了哪些与 pgsql 相关的 yum 包,我注意到了这些:

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

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

Seemed to me like there ought to be a postgresql93-devel, so I tried:

在我看来应该有一个postgresql93-devel,所以我试过:

sudo yum install postgresql93-devel

sudo yum install postgresql93-devel

And that fixed the problem for me! So I guess the theme is: Look at the gcc call, and see what dir it's pulling in. Follow the crumbs from there.

这为我解决了问题!所以我想主题是:查看 gcc 调用,看看它拉入了什么目录。从那里跟随面包屑。

回答by ji-ruh

In centos 7. i'd use sudo yum install postgresql96-devel.x86_64to solved my problem.

在centos 7中。我会sudo yum install postgresql96-devel.x86_64用来解决我的问题。