Saya tidak dapat menginstal python-ldap


266

Ketika saya menjalankan perintah berikut:

sudo pip install python-ldap

Saya mendapatkan kesalahan ini:

Dalam file termasuk dari Modul / LDAPObject.c: 9:

Modul / error.h: 8: kesalahan fatal: lber.h: Tidak ada file atau direktori tersebut

Ada ide bagaimana cara memperbaikinya?


1
Ini adalah bagaimana saya memperbaikinya untuk saya. Saya menggunakan Amazon EC2-Instance dan saya masuk ke usr/bin/direktori saya dan memperhatikan bahwa saya telah pip, pip-2.7, pip-3.6, and pip-pythonmelakukannya sudo pip-3.6 install ldap3dan itu berhasil bagi saya.
Kyle Bridenstine

1
@KyleBridenstine python-ldap bukan hal yang sama dengan ldap3.
David Mulder

Jawaban:


428

The python-ldap didasarkan pada OpenLDAP, sehingga Anda perlu memiliki file pembangunan (header) untuk mengkompilasi modul Python. Jika Anda menggunakan Ubuntu, paket itu disebut 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
Terima kasih untuk itu. Itu semakin jauh sekarang gagal dengan sasl.h tidak ada file atau direktori seperti itu
VacuumTube

68
@VacuumTube: Header yang hilang hampir selalu merupakan tanda untuk -devpaket yang hilang (kadang-kadang juga disebut -devel). Lakukan saja apt-cache search sasl | grep devdan Anda mungkin akan menemukan paket yang tepat - saya kira itu libsasl2-dev.
AndiDog

5
Apa pun untuk pengguna windows :( Kesalahan yang sama, tidak ada solusi sejauh ini
Shailen

4
Anda tidak harus mengkompilasi dari sumber pada Windows. Cukup gunakan salah satu installer dari pypi.python.org/pypi/python-ldap .
Semmel

3
Juga, pengguna Windows dapat mengekstrak installer .msi @Semmel yang disebutkan untuk menginstal ke dalam virtualenv: Cara menginstal python-ldap pada python 2.7 virtualenv di windows tanpa kompilasi (lihat pembaruan 2)
Dave

143

Untuk menginstal python-ldap berhasil dengan pip, pustaka pengembangan berikut diperlukan (nama paket diambil dari lingkungan ubuntu):

sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev

Terima kasih. ini yang kamu butuhkan. maka Anda menjalankansudo pip install python-ldap
Sudipta Basak

71

Pada CentOS / RHEL 6, Anda perlu menginstal:

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

dan yum juga akan diinstal cyrus-sasl-develsebagai dependensi. Maka Anda dapat menjalankan:

pip-2.7 install python-ldap

32

Di Ubuntu tampilannya seperti ini:

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

15

Windows: Saya sepenuhnya setuju dengan jawaban yang diterima, tetapi menggali komentar butuh beberapa saat untuk mendapatkan apa yang saya butuhkan. Saya menemukan masalah khusus ini dengan Reviewboard di Windows menggunakan Bitnami. Untuk memberikan jawaban untuk windows, saya menggunakan tautan ini yang disebutkan dalam komentar:

Kemudian, jalankan perintah berikut

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

(karena saya punya python 2.7 dan menginstal 32bit pada saat itu)

easy_install python-ldap


12

"Jangan membabi buta / menginstal perangkat lunak"

Di distro berbasis Ubuntu / Debian, Anda bisa menggunakan apt-fileuntuk menemukan nama paket yang tepat yang menyertakan file header yang hilang.

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

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

Seperti yang Anda lihat dari output apt-file search lber.h, Anda hanya perlu menginstal paket libldap2-dev.

sudo apt-get install libldap2-dev

2
Ini harus benar-benar di atas. Ini sangat membantu.
Bobort

Apakah ada CentoOS yang setara dengan ini?
Tomislav Urban

11

Bagi mereka yang memiliki masalah yang sama kehilangan Iber.h di Alpine Linux, dalam gambar buruh pelabuhan yang Anda coba untuk beradaptasi dengan Alpine misalnya.

Paket yang Anda cari adalah: openldap-dev

Jadi lari

apk add openldap-dev

Tersedia dari versi 3.3 hingga Edge

Tersedia untuk Arsitektur armhf dan x86_64.


Bagus untuk gambar berbasis alpine. Terima kasih.
rozacek

4

Pada openSUSE Anda perlu menginstal paket openldap2-devel, cyrus-sasl-devel, python-develdan libopenssl-devel.

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


4

Pada Fedora 22, Anda harus melakukan ini sebagai gantinya:

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

Masih berlaku untuk F25
Jerther

2

Pada OSX, Anda memerlukan alat xcode CLI. Cukup buka terminal dan jalankan:

xcode-select --install

2

Untuk sebagian besar sistem , persyaratan build sekarang disebutkan dalam dokumentasi python-ldap , di bagian "Instalasi".

Jika ada yang hilang untuk sistem Anda (atau sistem Anda sepenuhnya hilang), beri tahu pengelola! (Pada 2018, saya adalah pengelola, jadi komentar di sini sudah cukup. Atau Anda dapat mengirim permintaan tarik atau surat.)


Terima kasih, mungkin perlu dicatat bahwa jika Anda menjalankan python3, Anda perlu python3-devel, daripada python-devel.
Jamie


2

Untuk memperbaiki kesalahan karena ketergantungan untuk menginstal python-ldap: Windows 7/10

unduh file whl

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

python 3.6 sesuai dengan

python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

Menyebarkan file di:

c: \ python36 \ Scripts \

instal dengan

python -m pip install python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

1

Dalam FreeBSD 11:

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

1

Sebagai solusi umum untuk menginstal paket Python dengan dependensi biner [1] di 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

Anda harus memeriksa nama paket Python Anda di Ubuntu versus PyPI. Dalam hal ini mereka sama.

Jelas tidak berfungsi jika paket Python tidak ada dalam repo Ubuntu.

[1] Saya mempelajari trik ini ketika mencoba pip install matplotlibdi Ubuntu.


1

Untuk buruh pelabuhan alpine

apk add openldap-dev

jika versi python adalah 3 dan di atas coba

pip install python3-ldap

0

Jika Anda bekerja dengan mesin windows, Anda dapat menemukan roda 'python-ldap' di Tautan ini dan kemudian Anda dapat menginstalnya



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.