[英]Error: command 'gcc' failed with exit status when installing psycopg2
我需要為openerp
安裝過程安裝psycopg2
,但我總是遇到那個錯誤。 我已經使用了pip
和easy_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.