Centos 5 Python 2.7,无法安装Python LDAP



我需要安装*Python LDAP在Ptython 2.7 下运行

我有一个Centos5.8系统(我无法升级到6.x)。我目前安装了Python2.4和Python2.7。我使用Python 2.7进行开发(与Django一起)。我安装了PythonLDAP,并在Python2.4下运行(它是使用yum安装的)。我需要安装PythonLDAP以便与Python2.7一起使用(我还将安装Djangoldap)。我已经试了好几天了。yum只在Python 2.4下运行,所以我不能使用它。我从https://pypi.python.org/pypi/python-ldap/但当我试图构建它时,我会遇到错误(见下文)。

有人知道我是否/如何在Centos 5上安装Python 2.7的Python LDAP吗

构建时出错:

python setup.py build
defines: HAVE_SASL HAVE_TLS HAVE_LIBLDAP_R
extra_compile_args:
extra_objects:
include_dirs: /home/sfuller/python-ldap-2.4.13 /usr/lib64/evolution-openldap/include 

/usr/lib/eevolution-openldap/include/usr/include/sasl/usr/includelibrary_dirs:/home/veler/python-ldap-2.413/usr/lib64/eevolution-openldap/lib64/usr/lib/进化openldap/lib/usr/liblibs:ldap_r正在运行生成运行build_py找不到文件Lib/ldap.py(用于模块ldap)找不到文件Lib/ldap/controls.py(用于模块ldap.controls)找不到文件Lib/ldap/extop.py(用于模块ldap.extop)找不到文件Lib/ldap/schema.py(用于模块ldap.schema)找不到文件Lib/ldap.py(用于模块ldap)找不到文件Lib/ldap/controls.py(用于模块ldap.controls)找不到文件Lib/ldap/extop.py(用于模块ldap.extop)找不到文件Lib/ldap/schema.py(用于模块ldap.schema)运行egg_info

....
warning: no files found matching 'Makefile'
warning: no files found matching 'Modules/LICENSE'
writing manifest file 'Lib/python_ldap.egg-info/SOURCES.txt'
running build_ext
building '_ldap' extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes 

-fPIC-DHAVE_SASL-DHAVE_TLS-DHAVE_LIBLDAP_R-DHAVE-LIBLDAP_R-DLDAPMODULE_VERSION=2.4.13-IModules-I/home/veler/python-ldap-2.413-I/usr/lib64/eevolution-openldap/include-I/usr/lib/eevolution-openldap/include-I/usr/include/sasl-I/usr/include-I/usr/local/include/python2.7-c模块/LDAPObject.c-o构建/temp.linux-x86-64-2.7/Modules/LDAPObject.o在Modules/LDAPObject.c:18:0中包含的文件中:/usr/include/sasl/sasl.h:349:5:警告:函数声明不是原型[-Wstrict prototypes]

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=2.4.13 -IModules -I/home/sfuller/python-ldap-2.4.13 -I/usr/lib64/evolution-openldap/include -I/usr/lib/evolution-openldap/include -I/usr/include/sasl -I/usr/include -I/usr/local/include/python2.7 -c Modules/ldapcontrol.c -o build/temp.linux-x86_64-2.7/Modules/ldapcontrol.o

模块/ldapcontrol.c:在函数"encode_asseration_control"中:Modules/ldapcontrol.c:352:5:警告:函数的隐式声明âldap_create_asseration_control_valueâ[-Wimplicit函数声明]

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=2.4.13 -IModules -I/home/sfuller/python-ldap-2.4.13 -I/usr/lib64/evolution-openldap/include -I/usr/lib/evolution-openldap/include -I/usr/include/sasl -I/usr/include -I/usr/local/include/python2.7 -c Modules/common.c -o build/temp.linux-x86_64-2.7/Modules/common.o
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=2.4.13 -IModules -I/home/sfuller/python-ldap-2.4.13 -I/usr/lib64/evolution-openldap/include -I/usr/lib/evolution-openldap/include -I/usr/include/sasl -I/usr/include -I/usr/local/include/python2.7 -c Modules/constants.c -o build/temp.linux-x86_64-2.7/Modules/constants.o
Modules/constants.c: In function âLDAPinit_constantsâ:
Modules/constants.c:155:1: error: âLDAP_OPT_DIAGNOSTIC_MESSAGEâ undeclared (first use in 

此函数)模块/常量。c:155:1:注意:每个未声明的标识符对于它出现在中的每个函数只报告一次模块/常量。c:365:29:error:âLDAP_CONTROL_RELAXâ未声明(此函数中首次使用)错误:命令"gcc"失败,退出状态为1


然后我看了看这个线程:https://mail.python.org/pipermail/python-ldap/2011q2/002937.html

所以我下载了最新的OpenLDAP,得到了:

./configure
Configuring OpenLDAP 2.4.38-Release ...
...
configure: error: BerkeleyDB version incompatible with BDB/HDB backends

我好像在往下沉到一个黑洞里。。。

这适用于centos 5.10python 2.7.6。我安装到virtualenv中。

我在你的日志中看到提到了evolution-openldap,当我遇到同样的问题时,这些日志就在我的日志中。这些目录由openldap 2.3x安装。

您不需要从源代码构建openldap,因为在yum中有一个新版本足以满足python-ldap的版本要求。

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             

要安装,您应该首先安装yum install openldap24-libs openldap24-libs-devel

编辑setup.cfg使其[_ldap]部分包含:

library_dirs = /usr/lib/openldap24
include_dirs = /usr/include/openldap24

再次运行生成。(我删除了我的旧构建/目录,你可能不需要,但如果以上不起作用,请尝试一下)。

最新更新