Коли я запускаю таку команду:
sudo pip install python-ldap
Я отримую цю помилку:
У файлі, включеному з модулів / LDAPObject.c: 9:
Модулі / помилки.h: 8: фатальна помилка: lber.h: Немає такого файлу чи каталогу
Будь-які ідеї, як це виправити?
Коли я запускаю таку команду:
sudo pip install python-ldap
Я отримую цю помилку:
У файлі, включеному з модулів / LDAPObject.c: 9:
Модулі / помилки.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
.
В Ubuntu це виглядає так:
$ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
$ sudo pip install python-ldap
Windows: Я повністю погоджуюся з прийнятою відповіддю, але копати коментарі знадобилося певний час, щоб дістати до м'яса те, що мені потрібно. Я зіткнувся з цією конкретною проблемою з Reviewboard в Windows за допомогою Bitnami. Щоб дати відповідь для Windows тоді, я використав це посилання, згадане в коментарях:
Потім виконали наступні команди
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 .
костюм пітона 3.6
python_ldap-3.2.0-cp36-cp36m-win_amd64.whl
Розгорніть файл у:
c: \ python36 \ Сценарії \
встановити його за допомогою
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
Якщо ви працюєте з машинами Windows, ви можете знайти колесо "python-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
і це працювало на мене.