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ć?


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

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

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

32

W Ubuntu wygląda to tak:

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

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


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

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.


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


4

W Fedorze 22 musisz to zrobić zamiast tego:

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

Nadal prawdziwe dla F25
Jerther

2

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

xcode-select --install

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.)


Dzięki, warto zauważyć, że jeśli używasz Python3, potrzebujesz Python3-devel, a nie python-devel.
Jamie



1

W FreeBSD 11:

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

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.


1

Dla alpejskiego dokera

apk add openldap-dev

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

pip install python3-ldap

0

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



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.