web-dev-qa-db-fra.com

Je n'arrive pas à installer python-ldap

Quand j'exécute la commande suivante:

Sudo pip install python-ldap

Je reçois cette erreur:

Dans le fichier inclus à partir de Modules/LDAPObject.c: 9:

Modules/errors.h: 8: erreur fatale: lber.h: aucun fichier ni répertoire de ce type

Une idée de comment réparer ça?

206
VacuumTube

Le site web indique que python-ldap est basé sur OpenLDAP. Vous devez donc disposer des fichiers de développement (en-têtes) pour pouvoir compiler le module Python. Si vous êtes sur Ubuntu, le paquet s'appelle 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

Pour installer correctement python-ldap avec pip, vous devez disposer des bibliothèques de développement suivantes (noms de paquet provenant de l'environnement ubuntu): 

Sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
141
jmu

Sur CentOS/RHEL 6, vous devez installer:

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

et yum installera également cyrus-sasl-devel en tant que dépendance. Ensuite, vous pouvez exécuter:

pip-2.7 install python-ldap
70
Banjer

Dans Ubuntu, cela ressemble à ceci:

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

Windows: Je suis tout à fait d’accord avec la réponse acceptée, mais il a fallu un certain temps avant de pouvoir fouiller dans les commentaires pour comprendre ce dont j’avais besoin. J'ai rencontré ce problème spécifique avec Reviewboard sous Windows en utilisant Bitnami. Pour donner une réponse pour Windows alors, j'ai utilisé ce lien mentionné dans les commentaires:

Ensuite, exécutez les commandes suivantes 

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

(parce que j'avais Python 2.7 et une installation 32 bits à cela)

easy_install python-ldap
12
archangel76

"Ne pas supprimer/installer le logiciel à l'aveuglette"

Dans une distribution basée sur Ubuntu/Debian, vous pouvez utiliser apt-file pour trouver le nom du paquet exact contenant le fichier d’entête manquant.

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

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

Comme vous avez pu le constater à la sortie de apt-file search lber.h, il vous suffirait d'installer le paquet libldap2-dev.

Sudo apt-get install libldap2-dev
8
Gayan Weerakutti

Pour ceux qui ont le même problème de manque d'Iber.h sur Alpine Linux, dans une image de menu fixe que vous essayez d'adapter à Alpine par exemple. 

Le paquet que vous recherchez est: openldap-dev 

Donc courir

apk add openldap-dev

Disponible à partir de la version 3.3 jusqu'à Edge

Disponible pour les architectures armhf et x86_64.

5
Ilhicas

Sur Fedora 22, vous devez le faire à la place:

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

Sous openSUSE, vous devez installer les packages openldap2-devel, cyrus-sasl-devel, python-devel et libopenssl-devel.

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

3
Christian Berendt

Sous OSX, vous avez besoin des outils CLI xcode. Ouvrez simplement un terminal et lancez:

xcode-select --install
2
Andy Fraley

python3 ne supporte pas python-ldap. Plutôt installer LDAP3.

2
Agnel Amodia

Dans FreeBSD 11:

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

En tant que solution générale pour installer des paquets Python avec des dépendances binaires [1] sur 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

Vous devrez vérifier le nom de votre paquet Python sous Ubuntu par rapport à PyPI. Dans ce cas, ils sont les mêmes.

De toute évidence, cela ne fonctionne pas si le paquet Python n'est pas dans le dépôt Ubuntu.

[1] J'ai appris cette astuce en essayant de pip install matplotlib sur Ubuntu.

1
d3vid

Pour la plupart des systèmes, les exigences de construction sont maintenant mentionnées dans la documentation de python-ldap , section "Installation".

Si quelque chose manque pour votre système (ou votre système est totalement absent), veuillez en informer le responsable! courrier.)

1
Petr Viktorin

Si vous travaillez avec des machines Windows, vous pouvez trouver la molette 'python-ldap' dans ce Link et l'installer

0
pietà

pour ceux qui utilisent alphine linux, apk add openldap-dev

0
Vivin Veerali

Pour docker alpin

apk add openldap-dev

si la version python est 3 et plus, essayez

pip install python3-ldap
0
Akhilraj N S