Я не можу встановити python-ldap


265

Коли я запускаю таку команду:

sudo pip install python-ldap

Я отримую цю помилку:

У файлі, включеному з модулів / LDAPObject.c: 9:

Модулі / помилки.h: 8: фатальна помилка: lber.h: Немає такого файлу чи каталогу

Будь-які ідеї, як це виправити?


1
Ось як я це зафіксував. Я перебуваю на Amazon EC2-Instance, і я зайшов у свій usr/bin/каталог і помітив, що pip, pip-2.7, pip-3.6, and pip-pythonтак і зробив, sudo pip-3.6 install ldap3і це працювало на мене.
Кайл Бріденстін

1
@KyleBridenstine python-ldap - це не те саме, що ldap3.
Девід Малдер

Відповіді:


427

Пітон-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

2
Дякую за це. Отримано далі, тепер не вдається з sasl.h немає такого файлу чи каталогу
VacuumTube

68
@VacuumTube: Пропущені заголовки майже завжди є знаком для відсутніх -devпакунків (іноді їх також називають -devel). Просто зробіть, apt-cache search sasl | grep devі ви, мабуть, знайдете правильний пакет - я б припустив, що це libsasl2-dev.
AndiDog

5
Що-небудь для користувачів Windows :(
Така

4
Не потрібно компілювати з джерела в Windows. Просто скористайтеся одним із встановників з pypi.python.org/pypi/python-ldap .
Semmel

3
Також користувачі Windows можуть витягнути .msi інсталятор @Semmel, згаданий про встановлення у virtualenv: Як встановити python-ldap на python 2.7 virtualenv на Windows без компіляції (див. Оновлення 2)
Дейв

143

Щоб успішно встановити python-ldap за допомогою pip, потрібні наступні бібліотеки розробки (назви пакетів, взяті з середовища ubuntu):

sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev

Дякую. це все, що вам потрібно. тоді ти sudo pip install python-ldap
біжиш

71

На CentOS / RHEL 6 потрібно встановити:

sudo yum install python-devel
sudo yum install openldap-devel

і yum також встановиться cyrus-sasl-develяк залежність. Тоді ви можете запустити:

pip-2.7 install python-ldap


15

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


12

"Не видаляйте / встановлюйте програмне забезпечення сліпо"

У дистрибутиві, що базується на 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

2
Це дійсно повинно бути вгорі. Це надзвичайно корисно.
Боборт

Чи існує CentoOS, еквівалентний цьому?
Томіслав Урбан

11

Для тих, хто має той самий випуск про відсутній Iber.h на Alpine Linux, на зображенні докера, яку ви намагаєтесь, наприклад, адаптувати до Alpine.

Пакет, який ви шукаєте, це: openldap-dev

Тож біжи

apk add openldap-dev

Доступний від версії 3.3 до Edge

Доступно для архітектури armhf та x86_64.


Добре підходить для зображень на альпійській основі. Дякую.
rozacek

4

На OpenSUSE вам необхідно встановити пакети openldap2-devel, cyrus-sasl-devel, python-develі libopenssl-devel.

zypper install openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel


4

У Fedora 22 вам потрібно зробити це:

sudo dnf install python-devel
sudo dnf install openldap-devel

Все ще актуально для F25
Джертер

2

На OSX потрібні інструменти CLI для Xcode. Просто відкрийте термінал і запустіть:

xcode-select --install

2

У більшості систем вимоги до збірки згадуються в документації python-ldap , в розділі "Встановлення".

Якщо у вашій системі чогось не вистачає (або ваша система повністю відсутня), повідомте про це технічного обслуговування! (Станом на 2018 рік я є обслуговуючим персоналом, тому коментарів тут має бути достатньо. Або ви можете надіслати запит на витяг або електронну пошту.)


Дякую, можливо, варто відзначити, що якщо ви працюєте з python3, вам знадобиться python3-devel, а не python-devel.
Джеймі


2

Щоб виправити помилку через залежності для встановлення 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

1

У FreeBSD 11:

pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap

1

Як загальне рішення для установки пакетів 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 matplotlibUbuntu.


1

Для альпійського докера

apk add openldap-dev

якщо версія python 3 і вище, спробуйте

pip install python3-ldap

0

Якщо ви працюєте з машинами Windows, ви можете знайти колесо "python-ldap" у цьому посиланні, а потім зможете встановити його



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.