Когда я запускаю следующую команду:
sudo pip install python-ldap
Я получаю эту ошибку:
В файле из модуля / LDAPObject.c: 9:
Modules / errors.h: 8: фатальная ошибка: lber.h: нет такого файла или каталога
Любые идеи, как это исправить?
Когда я запускаю следующую команду:
sudo pip install python-ldap
Я получаю эту ошибку:
В файле из модуля / LDAPObject.c: 9:
Modules / errors.h: 8: фатальная ошибка: lber.h: нет такого файла или каталога
Любые идеи, как это исправить?
Ответы:
Питон-LDAP основан на OpenLDAP, поэтому вам нужно иметь файлы развития (заголовки) для компиляции модуля Python. Если вы в Ubuntu, пакет называется libldap2-dev
.
Debian / Ubuntu :
sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
RedHat / CentOS :
sudo yum install python-devel openldap-devel
-dev
пакетов (иногда их также называют -devel
). Просто сделайте, apt-cache search sasl | grep dev
и вы, вероятно, найдете правильный пакет - я думаю, это так libsasl2-dev
.
Для успешной установки python-ldap с помощью pip необходимы следующие библиотеки разработки (имена пакетов взяты из среды ubuntu):
sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
sudo pip install python-ldap
В Ubuntu это выглядит так:
$ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
$ sudo pip install python-ldap
Windows: Я полностью согласен с принятым ответом, но копаться в комментариях потребовалось время, чтобы добраться до сути того, что мне было нужно. Я столкнулся с этой конкретной проблемой с Reviewboard на Windows, используя Bitnami. Чтобы дать ответ для окон, я использовал эту ссылку, упомянутую в комментариях:
Затем выполняются следующие команды
easy_install pip
pip install python_ldap-2.4.20-cp27-none_win32.whl
(потому что у меня был Python 2.7 и 32-битная установка)
easy_install python-ldap
В дистрибутиве на основе Ubuntu / Debian вы можете использовать, apt-file
чтобы найти имя точного пакета, который включает в себя отсутствующий заголовочный файл.
# do this once
sudo apt-get install apt-file
sudo apt-file update
$ apt-file search lber.h
libldap2-dev: /usr/include/lber.h
Как видно из вывода apt-file search lber.h
, вам просто нужно установить пакет libldap2-dev
.
sudo apt-get install libldap2-dev
Для тех, у кого та же проблема отсутствует Iber.h в Alpine Linux, в образе докера, который вы пытаетесь адаптировать, например, к Alpine.
Пакет, который вы ищете: openldap-dev
Так беги
apk add openldap-dev
Доступно с версии 3.3 до Edge
Доступно как для armhf, так и для архитектуры x86_64.
На OpenSUSE вам необходимо установить пакеты openldap2-devel
, cyrus-sasl-devel
, python-devel
и libopenssl-devel
.
zypper install openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel
В OSX вам нужны инструменты CLI xcode. Просто откройте терминал и запустите:
xcode-select --install
Для большинства систем требования к сборке теперь упоминаются в документации по python-ldap , в разделе «Установка».
Если что-то отсутствует в вашей системе (или ваша система отсутствует полностью), пожалуйста, сообщите об этом сопровождающему! (Начиная с 2018 года я являюсь сопровождающим, поэтому здесь должно быть достаточно комментария. Или вы можете отправить запрос на удаление или написать письмо).
python3 не поддерживает python-ldap. Скорее для установки ldap3.
Чтобы исправить ошибку из-за зависимостей для установки python-ldap: Windows 7/10
скачать файл whl
http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap .
костюм Python 3.6 с
python_ldap-3.2.0-cp36-cp36m-win_amd64.whl
Разверните файл в:
C: \ python36 \ Scripts \
установить его с
python -m pip install python_ldap-3.2.0-cp36-cp36m-win_amd64.whl
В FreeBSD 11:
pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
Как общее решение для установки пакетов Python с бинарными зависимостями [1] в Debian / Ubuntu:
sudo apt-get build-dep python-ldap
# installs system dependencies (but not the package itself)
pew workon my_virtualenv # enter your virtualenv
pip install python-ldap
Вам придется проверить имя вашего пакета Python в Ubuntu по сравнению с PyPI. В этом случае они одинаковы.
Очевидно, не работает, если пакет Python отсутствует в репозиториях Ubuntu.
[1] Я научился этому трюку, пытаясь использовать pip install matplotlib
Ubuntu.
Для альпийского докера
apk add openldap-dev
если версия Python 3 и выше, попробуйте
pip install python3-ldap
для тех, кто использует alphine linux, apk добавить openldap-dev
sudo apt-get install build-essential python3-dev python2.7-dev libldap2-dev libsasl2-dev slapd ldap-utils python-tox lcov valgrind
usr/bin/
каталог и заметил, что уpip, pip-2.7, pip-3.6, and pip-python
меня так было,sudo pip-3.6 install ldap3
и это сработало для меня.