Quando executo o seguinte comando:
sudo pip install python-ldap
Eu recebo este erro:
No arquivo incluído em Modules / LDAPObject.c: 9:
Modules / errors.h: 8: erro fatal: lber.h: esse arquivo ou diretório não existe
Alguma idéia de como corrigir isso?
usr/bin/
diretório e notei quepip, pip-2.7, pip-3.6, and pip-python
sim,sudo pip-3.6 install ldap3
e funcionou para mim.Respostas:
O python-ldap é baseado no OpenLDAP, então você precisa ter os arquivos de desenvolvimento (cabeçalhos) para compilar o módulo Python. Se você estiver no Ubuntu, o pacote é chamado
libldap2-dev
.Debian / Ubuntu :
RedHat / CentOS :
fonte
-dev
pacotes ausentes (às vezes também chamados-devel
). Basta fazerapt-cache search sasl | grep dev
e você provavelmente encontrará o pacote certo - eu acho que élibsasl2-dev
.Para instalar o python-ldap com sucesso com o pip, são necessárias as seguintes bibliotecas de desenvolvimento (nomes de pacotes retirados do ambiente do ubuntu):
fonte
sudo pip install python-ldap
No CentOS / RHEL 6, você precisa instalar:
e o yum também será instalado
cyrus-sasl-devel
como uma dependência. Então você pode executar:fonte
No Ubuntu, fica assim:
fonte
Windows: Concordo plenamente com a resposta aceita, mas pesquisar nos comentários levou um tempo para entender o que eu precisava. Corri com esse problema específico com o Reviewboard no Windows usando o Bitnami. Para dar uma resposta para o Windows, usei este link mencionado nos comentários:
Em seguida, execute os seguintes comandos
(porque eu tinha python 2.7 e uma instalação de 32 bits)
fonte
"Não remova / instale cegamente o software"
Em uma distribuição baseada no Ubuntu / Debian, você pode usar
apt-file
para encontrar o nome do pacote exato que inclui o arquivo de cabeçalho ausente.Como você pode ver na saída de
apt-file search lber.h
, você só precisa instalar o pacotelibldap2-dev
.fonte
Para aqueles que têm o mesmo problema de falta do Iber.h no Alpine Linux, em uma imagem do docker que você está tentando adaptar ao Alpine, por exemplo.
O pacote que você está procurando é: openldap-dev
Então corra
apk add openldap-dev
Disponível da versão 3.3 até o Edge
Disponível para as arquiteturas armhf e x86_64.
fonte
No openSUSE é necessário instalar os pacotes
openldap2-devel
,cyrus-sasl-devel
,python-devel
elibopenssl-devel
.zypper install openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel
fonte
No Fedora 22, você precisa fazer isso:
fonte
No OSX, você precisa das ferramentas da CLI do xcode. Basta abrir um terminal e executar:
fonte
Para a maioria dos sistemas , os requisitos de compilação agora são mencionados na documentação do python-ldap , na seção "Instalação".
Se algo estiver faltando para o seu sistema (ou o sistema estiver totalmente ausente), informe o mantenedor! (A partir de 2018, sou o mantenedor, um comentário aqui deve ser suficiente. Ou você pode enviar uma solicitação ou recebimento por correio.)
fonte
python3 não suporta python-ldap. Em vez de instalar o ldap3.
fonte
Para corrigir o erro devido às dependências para instalar o python-ldap: Windows 7/10
baixe o arquivo whl
http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap .
terno python 3.6 com
Implante o arquivo em:
instale-o com
fonte
No FreeBSD 11:
fonte
Como uma solução geral para instalar pacotes Python com dependências binárias [1] no Debian / Ubuntu:
Você precisará verificar o nome do seu pacote Python no Ubuntu versus PyPI. Nesse caso, são iguais.
Obviamente não funciona se o pacote Python não estiver nos repositórios do Ubuntu.
[1] Aprendi esse truque ao tentar
pip install matplotlib
no Ubuntu.fonte
Para estivador alpino
se a versão python for 3 ou superior, tente
fonte
Se você estiver trabalhando com máquinas Windows, poderá encontrar a roda 'python-ldap' neste link e depois poderá instalá-lo
fonte
para quem está usando o alphine linux, apk add openldap-dev
fonte
fonte