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?

VacuumTube
sumber
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
AndiDog
sumber
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
jmu
sumber
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
Banjer
sumber
32

Di Ubuntu tampilannya seperti ini:

 $ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
 $ sudo pip install python-ldap
Jeff Sheffield
sumber
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
malaikat agung76
sumber
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
Gayan Weerakutti
sumber
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.

Ilhicas
sumber
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

Christian Berendt
sumber
4

Pada Fedora 22, Anda harus melakukan ini sebagai gantinya:

sudo dnf install python-devel
sudo dnf install openldap-devel
chfw
sumber
Masih berlaku untuk F25
Jerther
2

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

xcode-select --install
Andy Fraley
sumber
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.)

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

python3 tidak mendukung python-ldap. Alih-alih menginstal ldap3.

Agnel Amodia
sumber
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
Tono Kuriakose
sumber
1

Dalam FreeBSD 11:

pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
digitalr00ts
sumber
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.

david.libremone
sumber
1

Untuk buruh pelabuhan alpine

apk add openldap-dev

jika versi python adalah 3 dan di atas coba

pip install python3-ldap
Akhilraj NS
sumber
0

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

pieta
sumber
0

bagi mereka yang menggunakan linux alphine, apk tambahkan openldap-dev

Vivin Veerali
sumber