it-swarm.com.de

Ich kann Python-ldap nicht installieren

Wenn ich den folgenden Befehl ausführen:

Sudo pip install python-ldap

Ich erhalte diesen Fehler:

In einer Datei, die aus Modules/LDAPObject.c enthalten ist: 9:

Modules/errors.h: 8: schwerwiegender Fehler: lber.h: Keine solche Datei oder Verzeichnis

Irgendwelche Ideen, wie man das beheben kann?

206
VacuumTube

Die Website besagt, dass Python-ldap auf OpenLDAP basiert. Sie benötigen also Entwicklungsdateien (Header), um das Python-Modul zu kompilieren. Wenn Sie sich unter Ubuntu befinden, heißt das Paket 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
305
AndiDog

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
141
jmu

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

Sudo yum install python-devel
Sudo yum install openldap-devel

und yum installiert auch cyrus-sasl-devel als Abhängigkeit. Dann kannst du laufen:

pip-2.7 install python-ldap
70
Banjer

In Ubuntu sieht es so aus:

 $ Sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
 $ Sudo pip install python-ldap
31
Jeff Sheffield

Windows: Ich stimme der akzeptierten Antwort voll und ganz zu, aber es dauerte eine Weile, bis ich die Kommentare durchforstete. Ich bin auf dieses spezielle Problem mit Reviewboard unter Windows mit dem 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 32bit dazu installiert hatte)

easy_install python-ldap
12
archangel76

"Software nicht blind entfernen/installieren"

In einer auf Ubuntu/Debian basierenden Distribution können Sie mit apt-file den 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 anhand der Ausgabe von apt-file search lber.h sehen können, müssen Sie lediglich das Paket libldap2-dev installieren.

Sudo apt-get install libldap2-dev
8

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

Das Paket, nach dem Sie suchen, lautet: openldap-dev 

Also laufe

apk add openldap-dev

Verfügbar ab Version 3.3 bis Edge

Verfügbar für sowohl armhf- als auch x86_64-Architekturen.

5
Ilhicas

Auf Fedora 22 müssen Sie stattdessen Folgendes tun:

Sudo dnf install python-devel
Sudo dnf install openldap-devel
4
chfw

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

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

3

Unter OSX benötigen Sie die CLI-Tools von xcode. Öffnen Sie einfach ein Terminal und starten Sie:

xcode-select --install
2
Andy Fraley

python3 unterstützt python-ldap nicht. Stattdessen ldap3 zu installieren.

2
Agnel Amodia

In FreeBSD 11:

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

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 auf Ubuntu versus PyPI überprüfen. In diesem Fall sind sie gleich.

Funktioniert offensichtlich nicht, wenn das Python-Paket nicht in den Ubuntu-Repos enthalten ist.

[1] Ich habe diesen Trick gelernt, als ich pip install matplotlib auf Ubuntu __ versuchte.

1
d3vid

Für die meisten Systeme werden die Buildanforderungen jetzt in Dokumentation von python-ldap im Abschnitt "Installation" erwähnt.

Wenn etwas für Ihr System fehlt (oder Ihr System vollständig fehlt), informieren Sie den Betreuer bitte! (Ab 2018 bin ich der Betreuer, daher sollte ein Kommentar hier ausreichen mail.)

1
Petr Viktorin

Wenn Sie mit Windows-Maschinen arbeiten, finden Sie in diesem Link 'Python-ldap' -Rad und können es dann installieren

0
pietà

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

0
Vivin Veerali

Für Alpine Docker

apk add openldap-dev

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

pip install python3-ldap
0
Akhilraj N S