[英]Error when installing python26 on RedHat Enterprise Server 5.5
[英]Resolve GCC error when installing python-ldap on Redhat Enterprise Server
最近,我花了幾個小時撕掉我的頭發(或者剩下的東西)試圖將python-ldap(通過pip)安裝到Redhat Enterprise服務器上。
這是我會得到的錯誤消息(看起來很熟悉?):
Modules/constants.c:365: error: 'LDAP_CONTROL_RELAX' undeclared (first use in this function) error: command 'gcc' failed with exit status 1
如果只有那里有人可以幫助我!
可是等等! 我可以幫助你,因為我經過大量的詛咒后想出來了!
根據文檔,您必須在系統上安裝OpenLDAP庫。 在我寫這些庫的版本要求時> = 2.4.11
要查看您的系統上是否安裝了此類庫,請運行以下命令: yum list installed openldap*
以下是我系統的輸出,作為您可能會看到的示例:
PACKAGE VERSION
openldap24-libs.i386 2.4.23-5.el5
openldap24-libs.x86_64 2.4.23-5.el5
openldap24-libs-devel.i386 2.4.23-5.el5
openldap24-libs-devel.x86_64 2.4.23-5.el5
所以,就我而言,我已經安裝了庫。 如果你不只是運行:
sudo yum install openldap24-libs-devel
sudo yum install openldap24-libs
如果軟件包已經安裝且pip仍然失敗,那么setup.cfg腳本可能在錯誤的位置查找所需的庫文件。 那么,讓我們找出它們在我們系統中的位置。
做這個:
rpm -ql openldap24-libs
rpm -ql openldap24-libs-devel
你應該得到這樣的東西(我已經縮寫了這個,所以我們可以更容易地看到涉及的目錄)。
rpm -ql openldap24-libs
/usr/lib64/...
/usr/lib/...
rpm -ql openldap24-libs-devel
/usr/include/openldap24/...
/usr/lib/openldap24/...
/usr/lib64/openldap24/...
build
目錄(你會找到/ bin,/ include,/ lib和/ man的相同位置)。 build
目錄中,你應該找到`python-ldap / setup.cfg'。 你應該在文件的頂部看到這個:
[_ldap]
library_dirs = /opt/openldap-RE24/lib /usr/lib
include_dirs = /opt/openldap-RE24/include /usr/include/sasl /usr/include
顯然,這是錯誤的。 將您在步驟2 中發現的目錄附加到當前列出的目錄前面 ,以便最終得到如下內容:
[_ldap]
library_dirs = /usr/lib64/openldap24 /usr/lib/openldap24 /usr/lib64 /opt/openldap-RE24/lib /usr/lib
include_dirs = /usr/include/openldap24 /opt/openldap-RE24/include /usr/include/sasl /usr/include
保存文件后,您只需再次運行pip install python-ldap
。 安裝過程將查看您的更新setup.cfg,並且應該安裝而不會出現任何進一步的問題。
eikonomega答案中第3步的替代方案:
$ export CPATH=/usr/include/openldap24/
$ export LIBRARY_PATH=/usr/lib64/openldap24/
然后:
$ pip install python-ldap
無需破解setup.cfg!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.