簡體   English   中英

在Redhat Enterprise Server上安裝python-ldap時解決GCC錯誤

[英]Resolve GCC error when installing python-ldap on Redhat Enterprise Server

Python-LDAP + Redhat =咬牙切齒

最近,我花了幾個小時撕掉我的頭發(或者剩下的東西)試圖將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

如果只有那里有人可以幫助我!

可是等等! 我可以幫助你,因為我經過大量的詛咒后想出來了!

步驟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

第2步:這些軟件包安裝在哪里?

如果軟件包已經安裝且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/...

第3步:檢查Pip的setup.cfg文件中的python-ldap

  • 當pip install命令失敗時,它會在python解釋器的基目錄中留下一個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

第4步:重新運行安裝和利潤!

保存文件后,您只需再次運行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.

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