簡體   English   中英

錯誤:安裝 psycopg2 時命令“gcc”失敗並顯示退出狀態

[英]Error: command 'gcc' failed with exit status when installing psycopg2

我需要為openerp安裝過程安裝psycopg2 ,但我總是遇到那個錯誤。 我已經使用了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

您需要為 PostgreSQL 安裝開發包,例如在 Ubuntu 下是sudo apt-get install libpq-dev ... 而對於 CentOS 是yum install postgresql-devel

對於 CentOS,我遇到了同樣的問題,我解決了安裝這些軟件包的問題:

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

只有這樣,我才能成功執行:

sudo easy_install psycopg2

可能您的系統缺少 Python 標頭。 要解決此問題,請運行:

sudo apt-get install python-dev

或者

sudo apt-get install python3-dev

在 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*

希望能幫助到你,

埃雷茲

我有這個問題,但通過運行解決了:

pip install -Iv psycopg2==2.7.7

安裝最新版本+python3.7有問題

我一直在嘗試在普通的 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 調用,看看它拉入了什么目錄 從那里跟隨面包屑。

對於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包。 這對我來說至關重要。

在centos 7. 我會使用sudo yum install postgresql96-devel.x86_64來解決我的問題。

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在搜索路徑中是無處可去的。

這在 Ubuntu Server 14.10 64 位上對我有用:

sudo apt-get install libpqxx-dev

對我來說,丟失的包裹是

libpqxx-devel.x86_64

psycopg2 也可以在 PyPI 上以輪包的形式用於最常見的平台(Linux、OSX、Windows):這應該使您能夠安裝該模塊的二進制版本,而不需要上述構建或運行時先決條件。

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

注意 psycopg2-binary 包適用於初學者開始使用 Python 和 PostgreSQL 而無需滿足構建要求。 如果您是依賴於 psycopg2 的發布包的維護者,則不應使用“psycopg2-binary”作為模塊依賴項。 對於生產用途,建議您使用源代碼分發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM