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?

Vakuumröhre
quelle
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
AndiDog
quelle
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
jmu
quelle
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
Banjer
quelle
32

In Ubuntu sieht es so aus:

 $ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
 $ sudo pip install python-ldap
Jeff Sheffield
quelle
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
Erzengel76
quelle
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
Gayan Weerakutti
quelle
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.

Ilhicas
quelle
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

Christian Berendt
quelle
4

Auf Fedora 22 müssen Sie stattdessen Folgendes tun:

sudo dnf install python-devel
sudo dnf install openldap-devel
chfw
quelle
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
Andy Fraley
quelle
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.)

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

python3 unterstützt python-ldap nicht. Lieber ldap3 installieren.

Agnel Amodia
quelle
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
Tono Kuriakose
quelle
1

In FreeBSD 11:

pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
digitalr00ts
quelle
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 .

david.libremone
quelle
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
Akhilraj NS
quelle
0

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

pietà
quelle
0

für diejenigen, die alphine linux verwenden, apk add openldap-dev

Vivin Veerali
quelle