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?
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
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
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
Dans Ubuntu, cela ressemble à ceci:
$ Sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
$ Sudo pip install python-ldap
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
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
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.
Sur Fedora 22, vous devez le faire à la place:
Sudo dnf install python-devel
Sudo dnf install openldap-devel
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
Sous OSX, vous avez besoin des outils CLI xcode. Ouvrez simplement un terminal et lancez:
xcode-select --install
python3 ne supporte pas python-ldap. Plutôt installer LDAP3.
Dans FreeBSD 11:
pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
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.
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.)
Si vous travaillez avec des machines Windows, vous pouvez trouver la molette 'python-ldap' dans ce Link et l'installer
pour ceux qui utilisent alphine linux, apk add openldap-dev
Pour docker alpin
apk add openldap-dev
si la version python est 3 et plus, essayez
pip install python3-ldap