Я не могу установить python-ldap - PullRequest
218 голосов
/ 22 января 2011

Когда я запускаю следующую команду:

sudo pip install python-ldap

Я получаю эту ошибку:

В файле из модуля / LDAPObject.c: 9:

Modules / errors.h: 8: фатальная ошибка: lber.h: такого файла или каталога нет

Есть идеи как это исправить?

Ответы [ 17 ]

338 голосов
/ 22 января 2011

Веб-сайт сообщает, что python-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
142 голосов
/ 04 августа 2011

Для успешной установки python-ldap с помощью pip необходимы следующие библиотеки разработки (имена пакетов взяты из среды ubuntu):

sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
70 голосов
/ 31 октября 2012

В CentOS / RHEL 6 вам необходимо установить:

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

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

pip-2.7 install python-ldap
31 голосов
/ 07 декабря 2012

В Ubuntu это выглядит так:

 $ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
 $ sudo pip install python-ldap
13 голосов
/ 14 августа 2015

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
9 голосов
/ 20 января 2018

«Не слепо удалять / устанавливать программное обеспечение»

В дистрибутиве на основе 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
6 голосов
/ 17 августа 2017

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

Пакет, который вы ищете: openldap-dev

Запустите

apk add openldap-dev

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

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

4 голосов
/ 01 июня 2015

В Fedora 22 вам нужно сделать это вместо:

sudo dnf install python-devel
sudo dnf install openldap-devel
3 голосов
/ 16 июля 2014

В openSUSE вам необходимо установить пакеты openldap2-devel, cyrus-sasl-devel, python-devel и libopenssl-devel.

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

2 голосов
/ 28 июня 2016

В OSX вам нужны инструменты CLI xcode. Просто откройте терминал и запустите:

xcode-select --install
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...