Centos 5 Python 2.7, не удается установить Python-LDAP

Мне нужно установить * Python-LDAP для работы под Ptython 2.7

У меня система Centos 5.8 (я не могу обновиться до 6.x). В настоящее время у меня установлен Python 2.4, а также Python 2.7. Я использую Python 2.7 для разработки (вместе с Django). У меня установлен Python-LDAP и работает под Python 2.4 (устанавливался с помощью yum). Мне нужно установить Python-LDAP для использования с Python 2.7 (я также установлю Django-ldap). Я пытался в течение нескольких дней сделать это. yum работает только под Python 2.4, поэтому я не могу его использовать. Я скачал исходный код Python-LDAP (python-ldap-2.4.13.tar.gz (md5) с сайта https://pypi.python.org/pypi/python-ldap/, но когда я пытаюсь его собрать, я получаю ошибки (см. ниже).

Кто-нибудь знает, можно ли и как установить Python-LDAP для Python 2.7 на Centos 5?

Ошибка при сборке:

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/evolution-openldap/include /usr/include/sasl /usr/include library_dirs: /home/sfuller/python-ldap-2.4.13 /usr/lib64/evolution-openldap/lib64 /usr/lib/evolution -openldap/lib /usr/lib libs: 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/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/LDAPObject.c -o build/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

Modules/ldapcontrol.c: В функции «encode_assertion_control»: Modules/ldapcontrol.c:352:5: предупреждение: неявное объявление функции «ldap_create_assertion_control_value» [-Wimplicit-function-declaration]

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 

эту функцию) Modules/constants.c:155:1: примечание: о каждом необъявленном идентификаторе сообщается только один раз для каждой функции, которая появляется в Modules/constants.c:365:29: ошибка: «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

Кажется, я просто погружаюсь в черную дыру...


person user3130740    schedule 23.12.2013    source источник
comment
После публикации этого я нахожу: stackoverflow.com/questions/11716524/   -  person user3130740    schedule 24.12.2013
comment
Что может ответить на мой вопрос..   -  person user3130740    schedule 24.12.2013


Ответы (1)


Это работало в centos 5.10 и python 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

Запустите сборку снова. (Я удалил свой старый каталог сборки/, вам, вероятно, это не нужно, но попробуйте, если вышеперечисленное не работает).

person Daniel Rucci    schedule 16.01.2014