ฉันไม่สามารถติดตั้ง python-ldap


265

เมื่อฉันเรียกใช้คำสั่งต่อไปนี้:

sudo pip install python-ldap

ฉันได้รับข้อผิดพลาดนี้:

ในไฟล์รวมจาก Modules / LDAPObject.c: 9:

Modules / errors.h: 8: ข้อผิดพลาดร้ายแรง: lber.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

แนวคิดใดที่จะแก้ไขปัญหานี้


1
นี่คือวิธีที่ฉันจะแก้ไขให้กับฉัน ฉันอยู่ใน Amazon EC2-Instance และฉันเข้าไปในusr/bin/ไดเรกทอรีของฉันและสังเกตเห็นว่าฉันมีpip, pip-2.7, pip-3.6, and pip-pythonดังนั้นฉันก็ทำได้sudo pip-3.6 install ldap3และมันก็ใช้งานได้สำหรับฉัน
Kyle Bridenstine

1
@ KyleBridenstine python-ldap ไม่เหมือนกับ ldap3
David Mulder

คำตอบ:


427

หลาม LDAPจะขึ้นอยู่กับ OpenLDAP ดังนั้นคุณจะต้องมีไฟล์การพัฒนา (ส่วนหัว) เพื่อที่จะรวบรวมโมดูลหลาม หากคุณอยู่ในอูบุนตู, 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
ขอบคุณสำหรับสิ่งนั้น มันมีมากกว่านั้นตอนนี้มันล้มเหลวด้วย sasl.h ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
VacuumTube

68
@VacuumTube: ส่วนหัวที่ขาดหายไปมักเป็นสัญญาณสำหรับ-devแพ็คเกจที่หายไป(บางครั้งก็มีชื่อ-devel) เพียงแค่ทำapt-cache search sasl | grep devและคุณอาจจะพบแพคเกจที่เหมาะสม - libsasl2-devฉันจะคิดว่ามันเป็น
AndiDog

5
สิ่งใดสำหรับผู้ใช้ windows :( ข้อผิดพลาดเดียวกันไม่มีวิธีแก้ไขจนถึงตอนนี้
Shailen

4
คุณไม่จำเป็นต้องคอมไพล์จากซอร์สบน Windows เพียงแค่ใช้อย่างใดอย่างหนึ่งของโปรแกรมติดตั้งจากpypi.python.org/pypi/python-ldap
เมล

3
นอกจากนี้ผู้ใช้ Windows สามารถแตกไฟล์. msi installer @Semmel ที่กล่าวถึงเพื่อติดตั้งลงใน virtualenv: วิธีการติดตั้ง python-ldap บน python 2.7 virtualenv บน windows โดยไม่ต้องคอมไพล์ (ดูอัปเดต 2)
เดฟ

143

ในการติดตั้ง python-ldap สำเร็จด้วย pip จำเป็นต้องใช้ไลบรารีการพัฒนาต่อไปนี้ (ชื่อแพ็คเกจที่นำมาจากสภาพแวดล้อม Ubuntu):

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

ขอบคุณ นี่คือทั้งหมดที่คุณต้องการ จากนั้นคุณเรียกใช้sudo pip install python-ldap
Sudipta Basak

71

บน CentOS / RHEL 6 คุณต้องติดตั้ง:

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

และยัมก็จะติดตั้งcyrus-sasl-develเป็นการพึ่งพา จากนั้นคุณสามารถเรียกใช้:

pip-2.7 install python-ldap


15

Windows: ฉันเห็นด้วยอย่างยิ่งกับคำตอบที่ได้รับการยอมรับ แต่การขุดผ่านความคิดเห็นใช้เวลาสักครู่เพื่อให้ได้เนื้อตามที่ฉันต้องการ ฉันพบปัญหาเฉพาะกับ Reviewboard บน Windows โดยใช้ Bitnami เพื่อให้คำตอบสำหรับ windows แล้วฉันใช้ลิงค์นี้กล่าวถึงในความคิดเห็น:

จากนั้นดำเนินการคำสั่งต่อไปนี้

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

(เพราะฉันมี python 2.7 และติดตั้งแบบ 32 บิตที่)

easy_install python-ldap


12

"อย่าลบ / ติดตั้งซอฟต์แวร์"

ใน distro ที่ใช้ Ubuntu / Debian คุณสามารถใช้apt-fileเพื่อค้นหาชื่อของแพ็คเกจที่แน่นอนซึ่งรวมถึงไฟล์ส่วนหัวที่ขาดหายไป

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

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

ในขณะที่คุณจะได้เห็นจากการส่งออกของคุณก็จะต้องติดตั้งแพคเกจapt-file search lber.hlibldap2-dev

sudo apt-get install libldap2-dev

2
นี่ควรจะอยู่ด้านบนสุด มันมีประโยชน์มาก
Bobort

CentoOS นั้นเทียบเท่ากับสิ่งนี้หรือไม่?
Tomislav Urban

11

สำหรับผู้ที่มีปัญหาเดียวกันกับ Iber.h ที่หายไปบน Alpine Linux ในรูปภาพของนักเทียบท่าที่คุณพยายามปรับให้เข้ากับ Alpine เช่น

แพ็คเกจที่คุณต้องการคือ: openldap-dev

ดังนั้นวิ่ง

apk add openldap-dev

มีให้ตั้งแต่เวอร์ชั่น 3.3 ถึง Edge

มีให้สำหรับทั้งสถาปัตยกรรม armhf และ x86_64


เหมาะสำหรับภาพที่ใช้อัลไพน์ ขอบคุณ
rozacek


4

ใน Fedora 22 คุณต้องทำสิ่งนี้แทน:

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

ยังคงเป็นจริงสำหรับ F25
Jerther

2

บน OSX คุณต้องมีเครื่องมือ xcode CLI เพียงเปิดเทอร์มินัลแล้วเรียกใช้:

xcode-select --install

2

สำหรับระบบส่วนใหญ่ข้อกำหนดของบิลด์จะถูกกล่าวถึงในเอกสารของ python-ldapในส่วน "การติดตั้ง"

หากมีสิ่งใดขาดหายไปสำหรับระบบของคุณ (หรือระบบของคุณหายไปโดยสิ้นเชิง) โปรดแจ้งให้ผู้ดูแลทราบ! (ตั้งแต่ปี 2018 ฉันเป็นผู้ดูแลดังนั้นความคิดเห็นที่นี่ควรจะเพียงพอหรือคุณสามารถส่งคำขอดึงหรือส่งจดหมายได้)


ขอบคุณอาจจะน่าสังเกตว่าถ้าคุณใช้ python3 คุณจะต้องใช้ python3-devel มากกว่า python-devel
Jamie


2

เพื่อแก้ไขข้อผิดพลาดเนื่องจากการพึ่งพาในการติดตั้ง python-ldap: Windows 7/10

ดาวน์โหลดไฟล์ whl

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

หลาม 3.6 เหมาะกับ

python_ldap-3.2.0-cp36-cp36m-win_amd64.whl

ปรับใช้ไฟล์ใน:

C: \ python36 \ Scripts \

ติดตั้งด้วย

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


1

เป็นโซลูชันทั่วไปในการติดตั้งแพ็กเกจ Python ด้วยการพึ่งพาไบนารี [1] บน 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

คุณจะต้องตรวจสอบชื่อแพ็คเกจ Python ของคุณบน Ubuntuกับ PyPI ในกรณีนี้มันเหมือนกัน

เห็นได้ชัดว่าใช้งานไม่ได้หากแพ็คเกจ Python ไม่ได้อยู่ใน repos ของ Ubuntu

[1] ฉันได้เรียนรู้เคล็ดลับนี้เมื่อพยายามpip install matplotlibบน Ubuntu


1

สำหรับนักเทียบท่าอัลไพน์

apk add openldap-dev

ถ้าเวอร์ชันของ python คือ 3 ขึ้นไปลอง

pip install python3-ldap

0

หากคุณกำลังทำงานกับเครื่อง windows คุณสามารถค้นหาล้อ 'python-ldap' ในลิงค์นี้จากนั้นคุณสามารถติดตั้งได้



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.