การติดตั้งโมดูล lxml ใน python


89

ขณะเรียกใช้สคริปต์ python ฉันได้รับข้อผิดพลาดนี้

  from lxml import etree
ImportError: No module named lxml

ตอนนี้ฉันพยายามติดตั้ง lxml

sudo easy_install lmxl

แต่มันทำให้ฉันมีข้อผิดพลาดต่อไปนี้

Building lxml version 2.3.beta1.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available.
ERROR: /bin/sh: xslt-config: not found

** make sure the development packages of libxml2 and libxslt are installed **

ใช้การกำหนดค่าบิวด์ของ libxslt

src/lxml/lxml.etree.c:4: fatal error: Python.h: No such file or directory
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1

คำตอบ:


108

แค่ทำ:

sudo apt-get install python-lxml

สำหรับ Python 2 (เช่นต้องการโดย Inkscape):

sudo apt-get install python2-lxml

หากคุณวางแผนที่จะติดตั้งจากแหล่งที่มาคำตอบของ albertovจะช่วยได้ แต่ถ้าไม่มีเหตุผลอย่าเพิ่งติดตั้งจากที่เก็บ


6
หากคุณใช้สภาพแวดล้อมเสมือนจริงนี่ไม่ใช่คำตอบที่ถูกต้อง
AlexLordThorsen


49

คุณต้องติดตั้งไฟล์ส่วนหัวของ Python (แพ็คเกจ python-dev ใน debian / ubuntu) เพื่อคอมไพล์ lxml เช่นเดียวกับ libxml2, libxslt, libxml2-dev และ libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev

2
และ libxml2-dev และ libxslt-dev
Lennart Regebro

1
ดูเหมือนว่าlibxsltจะไม่จำเป็น (อย่างน้อยก็สำหรับฉัน) ดังนั้นapt-get install python-dev libxml2 libxml2-dev libxslt-devควรจะเพียงพอ
Mathieu

ฉันต้องทำสิ่งนี้เพื่อติดตั้ง WeasyPrint ซึ่งเป็นไฟล์ apt-getคำแนะนำสำหรับ Debian 7 เพียงอย่างเดียวไม่ได้ผล
cnst

1
libxsltเป็นสิ่งสำคัญสำหรับฉันการตั้งค่า lxml จะไม่ผ่านไปหากไม่มีมัน
axil

35

หากคุณใช้งาน python3 คุณจะต้องทำ:

pip3 install lxml


นี่คือสิ่งที่ได้ผลสำหรับฉัน! ฉันใช้ python3 และติดตั้งไลบรารีสำหรับ python เวอร์ชันก่อนหน้าผ่านpip. สำหรับpython3เราควรใช้pip3.
วิกเตอร์

5

สำหรับ RHEL / CentOS ให้เรียกใช้คำสั่ง "python --version" เพื่อค้นหาเวอร์ชัน Python เช่นด้านล่าง:

$ python --version 
  Python 2.7.12

ตอนนี้เรียกใช้ "sudo yum search lxml" เพื่อค้นหาแพ็คเกจ python * -lxml

$ sudo yum search lxml
Failed to set locale, defaulting to C
Loaded plugins: priorities, update-motd, upgrade-helper
1014 packages excluded due to repository priority protections
============================================================================================================= N/S matched: lxml =============================================================================================================
python26-lxml-docs.noarch : Documentation for python-lxml
python27-lxml-docs.noarch : Documentation for python-lxml
python26-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt
python27-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt

ตอนนี้คุณสามารถเลือกแพ็คเกจตามเวอร์ชัน Python ของคุณและเรียกใช้คำสั่งดังต่อไปนี้:

$ sudo yum install python27-lxml.x86_64

ฉันใช้ Windows วิธีแก้ปัญหาใด ๆ
พอล

use "python2.7.exe -m pip install --upgrade lxml"
Oni


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