34

我需要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
4

13 回答 13

47

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

于 2012-10-16T10:00:19.170 回答
32

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

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

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

sudo easy_install psycopg2
于 2013-01-08T22:27:41.670 回答
14

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

sudo apt-get install python-dev

或者

sudo apt-get install python3-dev
于 2012-11-01T11:10:28.310 回答
12

在 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

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

sudo yum install postgresql-devel
sudo yum install gcc*

希望能帮助到你,

埃雷兹

于 2015-11-10T09:20:23.710 回答
9

我遇到了这个问题,但通过运行解决了:

pip install -Iv psycopg2==2.7.7

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

于 2019-04-19T15:14:48.557 回答
6

我一直在尝试在普通的 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 调用,看看它拉入了什么目录。从那里跟随面包屑。

于 2016-03-01T00:11:01.400 回答
4

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

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

于 2015-04-08T21:18:06.897 回答
3

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

于 2017-03-06T08:11:55.640 回答
2

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

sudo apt-get install libpqxx-dev
于 2015-01-22T23:04:07.200 回答
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:

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

于 2012-10-16T09:43:59.757 回答
1

对我来说,丢失的包裹是

libpqxx-devel.x86_64
于 2014-07-18T16:13:08.280 回答
1

psycopg2 也可以在 PyPI 上以 Wheel 包的形式用于最常见的平台(Linux、OSX、Windows):这应该使您能够安装模块的二进制版本,而不需要上述构建或运行时先决条件。

您可以使用此命令: pip install psycopg2-binary

注意 psycopg2-binary 包旨在让初学者开始使用 Python 和 PostgreSQL,而无需满足构建要求。如果您是依赖于 psycopg2 的发布包的维护者,则不应使用“psycopg2-binary”作为模块依赖项。对于生产用途,建议您使用源代码分发。

于 2020-01-10T12:07:12.743 回答
0

我正在为 CICD 运行 3.9-alpine,并且必须安装这些软件包才能使其正常工作;

apk add postgresql-dev
apk add gcc
apk add musl-dev

然后我就可以pip install psycopg2正常运行了。

于 2021-09-21T10:49:45.520 回答