Ich kann python-ldap nicht installieren


264

Wenn ich den folgenden Befehl ausführe:

sudo pip install python-ldap

Ich erhalte diesen Fehler:

In der von Modules / LDAPObject.c enthaltenen Datei: 9:

Module / error.h: 8: Schwerwiegender Fehler: lber.h: Keine solche Datei oder kein solches Verzeichnis

Irgendwelche Ideen, wie man das behebt?


1
So habe ich es für mich behoben. Ich bin auf einer Amazon EC2-Instanz und ich ging in mein usr/bin/Verzeichnis und bemerkte, pip, pip-2.7, pip-3.6, and pip-pythondass ich es getan hatte sudo pip-3.6 install ldap3und es für mich funktionierte.
Kyle Bridenstine

1
@KyleBridenstine python-ldap ist nicht dasselbe wie ldap3.
David Mulder

Antworten:


426

Die Python-LDAP basiert auf OpenLDAP, daher benötigen Sie die Entwicklungsdateien (Header), um das Python-Modul zu kompilieren. Wenn Sie unter Ubuntu arbeiten, wird das Paket aufgerufen 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
Dank dafür. Es ist weiter gekommen, es schlägt jetzt mit sasl.h fehl, keine solche Datei oder Verzeichnis
VacuumTube

68
@VacuumTube: Fehlende Header sind fast immer ein Zeichen für fehlende -devPakete (manchmal auch benannt -devel). Tun apt-cache search sasl | grep devSie es einfach und Sie werden wahrscheinlich das richtige Paket finden - ich würde es vermuten libsasl2-dev.
AndiDog

5
Alles für Windows-Benutzer :( Gleicher Fehler, bisher keine Lösungen
Shailen

4
Sie müssen unter Windows nicht aus dem Quellcode kompilieren. Verwenden Sie einfach eines der Installationsprogramme von pypi.python.org/pypi/python-ldap .
Semmel

3
Außerdem können Windows-Benutzer das erwähnte MSI-Installationsprogramm @Semmel extrahieren, um es in einer virtuellen Umgebung zu installieren: So installieren Sie python-ldap auf einer virtuellen Python 2.7-Version unter Windows ohne Kompilierung (siehe Update 2)
Dave

143

Um python-ldap erfolgreich mit pip zu installieren, sind folgende Entwicklungsbibliotheken erforderlich (Paketnamen aus der Ubuntu-Umgebung):

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

Vielen Dank. das ist alles was du brauchst. dann sudo pip install python-ldap
rennst

71

Unter CentOS / RHEL 6 müssen Sie Folgendes installieren:

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

und yum wird auch cyrus-sasl-develals Abhängigkeit installiert . Dann können Sie ausführen:

pip-2.7 install python-ldap

32

In Ubuntu sieht es so aus:

 $ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
 $ sudo pip install python-ldap

15

Windows: Ich stimme der akzeptierten Antwort voll und ganz zu, aber es dauerte eine Weile, bis ich die Kommentare durchgesehen hatte. Ich bin auf dieses spezielle Problem mit Reviewboard unter Windows mit Bitnami gestoßen. Um dann eine Antwort für Windows zu geben, habe ich diesen in den Kommentaren erwähnten Link verwendet:

Führen Sie dann die folgenden Befehle aus

easy_install pip
pip install python_ldap-2.4.20-cp27-none_win32.whl

(weil ich Python 2.7 und eine 32-Bit-Installation hatte)

easy_install python-ldap


12

"Software nicht blind entfernen / installieren"

In einer Ubuntu / Debian-basierten Distribution können Sie apt-fileden Namen des genauen Pakets ermitteln, das die fehlende Header-Datei enthält.

# do this once
sudo apt-get install apt-file
sudo apt-file update

$ apt-file search lber.h
libldap2-dev: /usr/include/lber.h

Wie Sie der Ausgabe von apt-file search lber.hentnehmen können, müssen Sie nur das Paket installieren libldap2-dev.

sudo apt-get install libldap2-dev

1
Dies sollte wirklich an der Spitze sein. Es ist sehr hilfreich.
Bobort

Gibt es ein CentoOS-Äquivalent dazu?
Tomislav Urban

11

Für diejenigen, die das gleiche Problem haben, dass Iber.h unter Alpine Linux fehlt, in einem Docker-Image, das Sie beispielsweise an Alpine anpassen möchten.

Das Paket, das Sie suchen, ist: openldap-dev

Also renn

apk add openldap-dev

Verfügbar ab Version 3.3 bis Edge

Verfügbar für armhf- und x86_64-Architekturen.


Gut für alpine Bilder. Vielen Dank.
Rozacek

4

Unter OpenSuse müssen Sie die Pakete installieren openldap2-devel, cyrus-sasl-devel, python-develund libopenssl-devel.

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


4

Auf Fedora 22 müssen Sie stattdessen Folgendes tun:

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

Immer noch wahr für F25
Jerther

2

Unter OSX benötigen Sie die xcode CLI-Tools. Öffnen Sie einfach ein Terminal und führen Sie Folgendes aus:

xcode-select --install

2

Für die meisten Systeme werden die Build-Anforderungen jetzt in der Dokumentation von python-ldap im Abschnitt "Installieren" erwähnt.

Wenn etwas für Ihr System fehlt (oder Ihr System vollständig fehlt), informieren Sie bitte den Betreuer! (Ab 2018 bin ich der Betreuer, daher sollte ein Kommentar hier ausreichen. Oder Sie können eine Pull-Anfrage oder eine Mail senden.)


Vielen Dank. Wenn Sie python3 ausführen, benötigen Sie möglicherweise python3-devel anstelle von python-devel.
Jamie


2

So beheben Sie den Fehler aufgrund von Abhängigkeiten bei der Installation von python-ldap: Windows 7/10

Laden Sie die whl-Datei herunter

http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap .

Python 3.6 Anzug mit

python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

Stellen Sie die Datei bereit in:

c: \ python36 \ Scripts \

installiere es mit

python -m pip install python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

1

In FreeBSD 11:

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

1

Als allgemeine Lösung zur Installation von Python-Paketen mit binären Abhängigkeiten [1] unter 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

Sie müssen den Namen Ihres Python-Pakets unter Ubuntu überprüfen Vergleich zu PyPI überprüfen. In diesem Fall sind sie gleich.

Funktioniert offensichtlich nicht, wenn sich das Python-Paket nicht in den Ubuntu-Repos befindet.

[1] Ich habe diesen Trick gelernt, als ich unter pip install matplotlibUbuntu versucht habe .


1

Für alpine Hafenarbeiter

apk add openldap-dev

Wenn die Python-Version 3 und höher ist, versuchen Sie es

pip install python3-ldap

0

Wenn Sie mit Windows-Computern arbeiten, finden Sie unter diesem Link das Rad 'python-ldap' und können es dann installieren



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.