Non riesco a installare python-ldap


266

Quando eseguo il seguente comando:

sudo pip install python-ldap

Ottengo questo errore:

Nel file incluso da Modules / LDAPObject.c: 9:

Moduli / errori.h: 8: errore fatale: lber.h: nessun file o directory

Qualche idea su come risolvere questo problema?


1
È così che l'ho riparato per me. Sono su un'istanza EC2 di Amazon e sono entrato nella mia usr/bin/directory e ho notato che l' pip, pip-2.7, pip-3.6, and pip-pythonho fatto sudo pip-3.6 install ldap3e che ha funzionato per me.
Kyle Bridenstine,

1
@KyleBridenstine python-ldap non è la stessa cosa di ldap3.
David Mulder,

Risposte:


428

Il python-ldap si basa su OpenLDAP, quindi è necessario avere i file di sviluppo (header), al fine di compilare il modulo Python. Se sei su Ubuntu, il pacchetto si chiama 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
Grazie per quello È andato oltre e ora non riesce con sasl.h nessun file o directory del genere
VacuumTube

68
@VacuumTube: le intestazioni mancanti sono quasi sempre un segno per i -devpacchetti mancanti (a volte anche denominati -devel). Fallo apt-cache search sasl | grep deve probabilmente troverai il pacchetto giusto - immagino che lo sia libsasl2-dev.
AndiDog,

5
Qualsiasi cosa per gli utenti di Windows :( Stesso errore, nessuna soluzione finora
Shailen,

4
Non è necessario compilare dal sorgente su Windows. Basta usare uno dei programmi di installazione da pypi.python.org/pypi/python-ldap .
Semmel,

3
Inoltre, gli utenti Windows possono estrarre il programma di installazione .msi @Semmel menzionato per l'installazione in un virtualenv: Come installare python-ldap su un virtualenv python 2.7 su Windows senza compilare (vedi aggiornamento 2)
Dave,

143

Per installare correttamente python-ldap con pip, sono necessarie le seguenti librerie di sviluppo (nomi dei pacchetti presi dall'ambiente Ubuntu):

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

Grazie. questo è tutto ciò che serve. poi corrisudo pip install python-ldap
Sudipta Basak il

71

Su CentOS / RHEL 6, è necessario installare:

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

e yum verrà installato anche cyrus-sasl-develcome dipendenza. Quindi puoi eseguire:

pip-2.7 install python-ldap

32

In Ubuntu sembra così:

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

15

Windows: sono completamente d'accordo con la risposta accettata, ma scavare tra i commenti ha impiegato un po 'di tempo per arrivare alla carne di ciò di cui avevo bisogno. Ho riscontrato questo specifico problema con Reviewboard su Windows usando Bitnami. Per dare una risposta per Windows, ho usato questo link menzionato nei commenti:

Quindi, eseguire i seguenti comandi

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

(perché avevo Python 2.7 e un'installazione a 32 bit)

easy_install python-ldap


12

"Non rimuovere / installare ciecamente software"

In una distribuzione basata su Ubuntu / Debian, è possibile utilizzare apt-fileper trovare il nome del pacchetto esatto che include il file di intestazione mancante.

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

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

Come puoi vedere dall'output di apt-file search lber.h, avresti solo bisogno di installare il pacchetto libldap2-dev.

sudo apt-get install libldap2-dev

2
Questo dovrebbe davvero essere al top. È estremamente utile.
Bobort,

Esiste un CentoOS equivalente a questo?
Tomislav Urban

11

Per coloro che hanno lo stesso problema della mancanza di Iber.h su Alpine Linux, ad esempio in un'immagine docker che stai cercando di adattare ad Alpine.

Il pacchetto che stai cercando è: openldap-dev

Quindi corri

apk add openldap-dev

Disponibile dalla versione 3.3 fino a Edge

Disponibile per architetture armhf e x86_64.


Buono per le immagini a base alpina. Grazie.
rozacek,

4

Su openSUSE è necessario installare i pacchetti openldap2-devel, cyrus-sasl-devel, python-devele libopenssl-devel.

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


4

Su Fedora 22, devi invece fare questo:

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

Ancora vero per F25
Jerther il

2

Su OSX, sono necessari gli strumenti della CLI di xcode. Basta aprire un terminale ed eseguire:

xcode-select --install

2

Per la maggior parte dei sistemi , i requisiti di compilazione sono ora menzionati nella documentazione di python-ldap , nella sezione "Installazione".

Se manca qualcosa per il tuo sistema (o il tuo sistema manca del tutto), ti preghiamo di far sapere al manutentore! (A partire dal 2018, sono il manutentore, quindi un commento qui dovrebbe essere sufficiente. Oppure puoi inviare una richiesta pull o una mail.)


Grazie, potrebbe valere la pena notare che se si esegue python3, sarebbe necessario python3-devel, piuttosto che python-devel.
Jamie,


2

Per correggere l'errore dovuto alle dipendenze per installare python-ldap: Windows 7/10

scarica il file whl

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

tuta in pitone 3.6 con

python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

Distribuire il file in:

C: \ python36 \ Scripts \

installalo con

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

Come soluzione generale per installare i pacchetti Python con dipendenze binarie [1] su 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

Dovrai controllare il nome del tuo pacchetto Python su Ubuntu rispetto a PyPI. In questo caso sono uguali.

Ovviamente non funziona se il pacchetto Python non è nei repository di Ubuntu.

[1] Ho imparato questo trucco quando provavo pip install matplotlibsu Ubuntu.


1

Per docker alpino

apk add openldap-dev

se la versione di Python è 3 e successive provare

pip install python3-ldap

0

Se stai lavorando con macchine Windows, puoi trovare la ruota 'python-ldap' in questo link e poi puoi installarla



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.