เมื่อฉันเรียกใช้คำสั่งต่อไปนี้:
sudo pip install python-ldap
ฉันได้รับข้อผิดพลาดนี้:
ในไฟล์รวมจาก Modules / LDAPObject.c: 9:
Modules / errors.h: 8: ข้อผิดพลาดร้ายแรง: lber.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
แนวคิดใดที่จะแก้ไขปัญหานี้
เมื่อฉันเรียกใช้คำสั่งต่อไปนี้:
sudo pip install python-ldap
ฉันได้รับข้อผิดพลาดนี้:
ในไฟล์รวมจาก Modules / LDAPObject.c: 9:
Modules / errors.h: 8: ข้อผิดพลาดร้ายแรง: lber.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
แนวคิดใดที่จะแก้ไขปัญหานี้
คำตอบ:
หลาม 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
-dev
แพ็คเกจที่หายไป(บางครั้งก็มีชื่อ-devel
) เพียงแค่ทำapt-cache search sasl | grep dev
และคุณอาจจะพบแพคเกจที่เหมาะสม - libsasl2-dev
ฉันจะคิดว่ามันเป็น
ในการติดตั้ง python-ldap สำเร็จด้วย pip จำเป็นต้องใช้ไลบรารีการพัฒนาต่อไปนี้ (ชื่อแพ็คเกจที่นำมาจากสภาพแวดล้อม Ubuntu):
sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
sudo pip install python-ldap
บน CentOS / RHEL 6 คุณต้องติดตั้ง:
sudo yum install python-devel
sudo yum install openldap-devel
และยัมก็จะติดตั้งcyrus-sasl-devel
เป็นการพึ่งพา จากนั้นคุณสามารถเรียกใช้:
pip-2.7 install python-ldap
ใน Ubuntu ดูเหมือนว่า:
$ sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
$ sudo pip install python-ldap
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
ใน 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.h
libldap2-dev
sudo apt-get install libldap2-dev
สำหรับผู้ที่มีปัญหาเดียวกันกับ Iber.h ที่หายไปบน Alpine Linux ในรูปภาพของนักเทียบท่าที่คุณพยายามปรับให้เข้ากับ Alpine เช่น
แพ็คเกจที่คุณต้องการคือ: openldap-dev
ดังนั้นวิ่ง
apk add openldap-dev
มีให้ตั้งแต่เวอร์ชั่น 3.3 ถึง Edge
มีให้สำหรับทั้งสถาปัตยกรรม armhf และ x86_64
เกี่ยวกับ openSUSE คุณต้องติดตั้งแพคเกจopenldap2-devel
, cyrus-sasl-devel
, และpython-devel
libopenssl-devel
zypper install openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel
ใน Fedora 22 คุณต้องทำสิ่งนี้แทน:
sudo dnf install python-devel
sudo dnf install openldap-devel
บน OSX คุณต้องมีเครื่องมือ xcode CLI เพียงเปิดเทอร์มินัลแล้วเรียกใช้:
xcode-select --install
สำหรับระบบส่วนใหญ่ข้อกำหนดของบิลด์จะถูกกล่าวถึงในเอกสารของ python-ldapในส่วน "การติดตั้ง"
หากมีสิ่งใดขาดหายไปสำหรับระบบของคุณ (หรือระบบของคุณหายไปโดยสิ้นเชิง) โปรดแจ้งให้ผู้ดูแลทราบ! (ตั้งแต่ปี 2018 ฉันเป็นผู้ดูแลดังนั้นความคิดเห็นที่นี่ควรจะเพียงพอหรือคุณสามารถส่งคำขอดึงหรือส่งจดหมายได้)
python3 ไม่รองรับ python-ldap ค่อนข้างจะติดตั้ง ldap3
เพื่อแก้ไขข้อผิดพลาดเนื่องจากการพึ่งพาในการติดตั้ง 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
ใน FreeBSD 11:
pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
เป็นโซลูชันทั่วไปในการติดตั้งแพ็กเกจ 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
สำหรับนักเทียบท่าอัลไพน์
apk add openldap-dev
ถ้าเวอร์ชันของ python คือ 3 ขึ้นไปลอง
pip install python3-ldap
หากคุณกำลังทำงานกับเครื่อง windows คุณสามารถค้นหาล้อ 'python-ldap' ในลิงค์นี้จากนั้นคุณสามารถติดตั้งได้
สำหรับผู้ที่ใช้ alphine linux apk จะเพิ่ม openldap-dev
sudo apt-get install build-essential python3-dev python2.7-dev libldap2-dev libsasl2-dev slapd ldap-utils python-tox lcov valgrind
usr/bin/
ไดเรกทอรีของฉันและสังเกตเห็นว่าฉันมีpip, pip-2.7, pip-3.6, and pip-python
ดังนั้นฉันก็ทำได้sudo pip-3.6 install ldap3
และมันก็ใช้งานได้สำหรับฉัน