Nie mogę zainstalować python-ldap

265

Po uruchomieniu następującego polecenia:

sudo pip install python-ldap

Otrzymuję ten błąd:

W pliku zawartym w Modules / LDAPObject.c: 9:

Moduły / błędy. H: 8: błąd krytyczny: lber.h: brak takiego pliku lub katalogu

Wszelkie pomysły, jak to naprawić?

VacuumTube
źródło
1
Tak to naprawiłem. Korzystam z Amazon EC2-Instance i wszedłem do mojego usr/bin/katalogu i zauważyłem, że pip, pip-2.7, pip-3.6, and pip-pythontak zrobiłem sudo pip-3.6 install ldap3i zadziałało dla mnie.
Kyle Bridenstine
1
@KyleBridenstine python-ldap to nie to samo, co ldap3.
David Mulder

Odpowiedzi:

427

Python-ldap jest oparte na OpenLDAP, więc trzeba mieć pliki Rozwoju (nagłówki), aby skompilować moduł Pythona. Jeśli korzystasz z Ubuntu, pakiet jest wywoływany 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
AndiDog
źródło
2
Dziękuję za to. Zaszło dalej, teraz nie działa z sasl.h nie ma takiego pliku ani katalogu
VacuumTube 22.01.11
68
@VacuumTube: Brakujące nagłówki są prawie zawsze znakiem brakujących -devpakietów (czasem także nazwanych -devel). Po prostu zrób, apt-cache search sasl | grep deva prawdopodobnie znajdziesz odpowiedni pakiet - tak sądzę libsasl2-dev.
AndiDog,
5
Wszystko dla użytkowników systemu Windows :( Ten sam błąd, do tej pory brak rozwiązań
Shailen,
4
Nie musisz kompilować ze źródła w systemie Windows. Wystarczy użyć jednego z instalatorów z pypi.python.org/pypi/python-ldap .
Semmel,
3
Użytkownicy systemu Windows mogą również wyodrębnić instalator .msi @Semmel, o którym mowa, aby zainstalować w virtualenv: Jak zainstalować python-ldap na python 2.7 virtualenv w systemie Windows bez kompilacji (patrz aktualizacja 2)
Dave
143

Aby pomyślnie zainstalować python-ldap z pipem, potrzebne są następujące biblioteki programistyczne (nazwy pakietów pobrane ze środowiska ubuntu):

sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
jmu
źródło
dzięki. to wszystko czego potrzebujesz. następnie biegnieszsudo pip install python-ldap
Sudipta Basak
71

W CentOS / RHEL 6 musisz zainstalować:

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

i yum zostanie również zainstalowany cyrus-sasl-develjako zależność. Następnie możesz uruchomić:

pip-2.7 install python-ldap
Banjer
źródło
32

W Ubuntu wygląda to tak:

 $ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
 $ sudo pip install python-ldap
Jeff Sheffield
źródło
15

Windows: całkowicie zgadzam się z przyjętą odpowiedzią, ale przeglądanie komentarzy zajęło mi trochę czasu, aby dojść do sedna tego, czego potrzebowałem. Natknąłem się na ten konkretny problem z przeglądarką w systemie Windows przy użyciu Bitnami. Aby udzielić odpowiedzi dla systemu Windows, skorzystałem z linku wspomnianego w komentarzach:

Następnie wykonaj następujące polecenia

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

(ponieważ miałem Python 2.7 i 32-bitową instalację)

easy_install python-ldap
archanioł76
źródło
12

„Nie ślepo usuwaj / instaluj oprogramowania”

W dystrybucji opartej na Ubuntu / Debian możesz użyć apt-filenazwy dokładnego pakietu zawierającego brakujący plik nagłówka.

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

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

Jak widać z danych wyjściowych apt-file search lber.h, wystarczy zainstalować pakiet libldap2-dev.

sudo apt-get install libldap2-dev
Gayan Weerakutti
źródło
2
To powinno być naprawdę na górze. To bardzo pomocne.
Bobort
Czy istnieje odpowiednik CentoOS?
Tomislav Urban
11

Dla tych, którzy mają ten sam problem z brakującym plikiem Iber.h w Alpine Linux, na obrazie dokera, który próbujesz na przykład dostosować do Alpine.

Pakiet, którego szukasz, to: openldap-dev

Więc biegnij

apk add openldap-dev

Dostępne od wersji 3.3 do Edge

Dostępne dla architektur armhf i x86_64.

Ilhicas
źródło
Dobry do obrazów alpejskich. Dzięki.
rozacek
4

Na openSUSE należy zainstalować pakiety openldap2-devel, cyrus-sasl-devel, python-develi libopenssl-devel.

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

Christian Berendt
źródło
4

W Fedorze 22 musisz to zrobić zamiast tego:

sudo dnf install python-devel
sudo dnf install openldap-devel
chfw
źródło
Nadal prawdziwe dla F25
Jerther
2

W systemie OSX potrzebujesz narzędzi CLI xcode. Wystarczy otworzyć terminal i uruchomić:

xcode-select --install
Andy Fraley
źródło
2

W przypadku większości systemów wymagania dotyczące kompilacji są teraz wymienione w dokumentacji python-ldap w sekcji „Instalowanie”.

Jeśli brakuje czegoś w systemie (lub brakuje go całkowicie), powiadom o tym opiekuna! (Od 2018 r. Jestem opiekunem, więc tutaj powinien wystarczyć komentarz. Możesz też wysłać prośbę lub wiadomość e-mail.)

Petr Viktorin
źródło
Dzięki, warto zauważyć, że jeśli używasz Python3, potrzebujesz Python3-devel, a nie python-devel.
Jamie
2

python3 nie obsługuje python-ldap. Raczej zainstaluj ldap3.

Agnel Amodia
źródło
2

Aby naprawić błąd związany z zależnościami, aby zainstalować python-ldap: Windows 7/10

pobierz plik whl

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

python 3.6 garnitur z

python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

Wdróż plik w:

c: \ python36 \ Scripts \

zainstaluj za pomocą

python -m pip install python_ldap-3.2.0-cp36-cp36m-win_amd64.whl
Tono Kuriakose
źródło
1

W FreeBSD 11:

pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
digitalr00ts
źródło
1

Jako ogólne rozwiązanie do instalowania pakietów Pythona z zależnościami binarnymi [1] na 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

Będziesz musiał sprawdzić nazwę swojego pakietu Python na Ubuntu kontra PyPI. W tym przypadku są takie same.

Oczywiście nie działa, jeśli pakiet Python nie znajduje się w repozytoriach Ubuntu.

[1] Nauczyłem się tej sztuczki, próbując pip install matplotlibna Ubuntu.

david.libremone
źródło
1

Dla alpejskiego dokera

apk add openldap-dev

jeśli wersja Pythona to 3 i więcej, spróbuj

pip install python3-ldap
Akhilraj NS
źródło
0

Jeśli pracujesz na komputerach z systemem Windows, w tym łączu możesz znaleźć koło „python-ldap”, a następnie je zainstalować

pietà
źródło
0

dla tych, którzy używają alfa linuxa, apk dodaj openldap-dev

Vivin Veerali
źródło