วิธีการติดตั้ง lxml บน Ubuntu


442

ฉันมีปัญหาในการติดตั้ง lxml ด้วย easy_install บน Ubuntu 11

เมื่อฉันพิมพ์$ easy_install lxmlฉันจะได้รับ:

Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3
Downloading http://lxml.de/files/lxml-2.3.tgz
Processing lxml-2.3.tgz
Running lxml-2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7UdQOZ/lxml-2.3/egg-dist-tmp-GacQGy
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found

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

Using build configuration of libxslt 
In file included from src/lxml/lxml.etree.c:227:0:
src/lxml/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory
compilation terminated.

ดูเหมือนว่าlibxsltหรือlibxml2ไม่ได้ติดตั้ง ฉันได้พยายามทำตามคำแนะนำที่http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.phpและhttp://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux phpไม่ประสบความสำเร็จ

ถ้าฉันลองwget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gzฉันจะได้รับ

<successful connection info>
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /libxml2 ... done.
==> SIZE libxml2-sources-2.6.27.tar.gz ... done.
==> PASV ... done.    ==> RETR libxml2-sources-2.6.27.tar.gz ... 
No such file `libxml2-sources-2.6.27.tar.gz'.

ถ้าฉันลองอีกอันก่อนฉันจะไปหา./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2และมันจะล้มเหลวในที่สุดด้วย:

checking for libxml libraries >= 2.6.27... configure: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/.

ฉันได้พยายามทั้งสองรุ่น2.6.27และ2.6.29ของlibxml2มีไม่แตกต่างกัน

ฉันไม่ได้ทำอะไรสำเร็จsudo apt-get install libxml2-devแต่ก็ไม่ได้เปลี่ยนอะไรเลย

คำตอบ:


950

เนื่องจากคุณอยู่บน Ubuntu อย่ากังวลกับแพ็คเกจต้นทางเหล่านั้น เพียงติดตั้งแพ็คเกจการพัฒนาเหล่านั้นโดยใช้ apt-get

apt-get install libxml2-dev libxslt1-dev python-dev

หากคุณพอใจกับ lxml รุ่นที่เก่ากว่าโดยสิ้นเชิงคุณสามารถลอง

apt-get install python-lxml

และทำได้ด้วย :)


51
คำตอบนี้ควรถูกเพิ่มเข้าไปในคำแนะนำการติดตั้ง lxml :) ขอบคุณ +1
Boaz

43
หลังจากวิ่งapt-get install libxml2-dev libxslt-devคุณสามารถทำได้easy_install lxml
Bob Jansen

11
ใน distros เหมือน Ubuntu ล่าสุดคุณต้องติดตั้ง libxslt1-dev แทน libxslt-dev
Jose A. Martín

21
อย่างน้อยบน Ubuntu 14.04 zlib1g-devคุณยังมีการติดตั้งแพคเกจ
Christian Berendt

3
บน Ubuntu 16.04 ก็zlib1g-devเป็นสิ่งจำเป็นเช่นกัน /usr/bin/ld: cannot find -lzโดยไม่ต้องนี้ผมได้รับข้อผิดพลาด
Jabba

111

ฉันยังต้องติดตั้ง lib32z1-dev ก่อนที่ lxml จะรวบรวม (Ubuntu 13.04 x64)

sudo apt-get install lib32z1-dev

หรือแพคเกจที่จำเป็นทั้งหมดเข้าด้วยกัน:

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

9
+1 จำเป็นต้องมีแพ็คเกจนี้แม้หลังจากติดตั้งแพคเกจที่กล่าวถึงทั้งหมดแล้ว
Jayesh Bhoot

1
ใช่ฉันต้องการสิ่งนี้ในวันที่ 13.04
mwjackson

3
เหตุใดจึงต้องมีส่วนหัวของแพ็คเกจ lib32 บางที zlib1g-dev ก็อาจใช้ได้เช่นกัน?
Pepijn

1
zlib1g-dev จำเป็นสำหรับ ubuntu 13.04
Zelo

6
ยังต้องการใน 14.04 64 บิต
Kristinn ÖrnSigurðsson

43

ตามที่ @Pepijn แสดงความคิดเห็นในคำตอบของ @Druska บน Ubuntu 13.04 x64 ไม่จำเป็นต้องใช้ lib32z1-dev, zlib1g-dev ก็พอ:

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

16

ฉันติดตั้ง lxml ด้วย pip ใน Vagrant โดยใช้ Ubuntu 14.04 และมีปัญหาเดียวกัน แม้ว่าความต้องการทั้งหมดที่ติดตั้งฉันได้รับข้อผิดพลาดเดียวกันซ้ำแล้วซ้ำอีก กลับกลายเป็นว่า VM ของฉันมีหน่วยความจำน้อยโดยค่าเริ่มต้น ด้วย 1024 MB ทุกอย่างทำงานได้ดี

เพิ่มไปยัง VagrantFile และ lxml ของคุณควรจะรวบรวม / ติดตั้งอย่างถูกต้อง:

config.vm.provider "virtualbox" do |vb|
  vb.memory = 1024
end

ขอบคุณ sixhobbit สำหรับคำใบ้ (ดู: ไม่สามารถติดตั้ง lxml บน Ubuntu 12.04 )


สิ่งนี้ใช้ได้สำหรับฉัน ขอบคุณ มันบอกว่ารวบรวมล้มเหลวด้วยสถานะ 4 ในกรณีที่ช่วยคนอื่น
Kurtis

คำตอบนี้ไม่เกี่ยวข้องกับคำถามของ OP
Corey Goldberg

10

สำหรับ Ubuntu 14.04

sudo apt-get install python-lxml

ทำงานให้ฉัน


7
นั่นเป็นข่าวร้าย ฉันได้รับมากกว่า 1,000 ตัวแทนจากคำถามนี้หากพวกเขาได้รับการแก้ไขว่าจะหยุดรับมุมมอง ... 😊
Eric Wilson

9

ขั้นตอนที่ 1

ติดตั้งการอัพเดตหลามล่าสุดโดยใช้คำสั่งนี้

sudo apt-get install python-dev

ขั้นตอนที่ 2

เพิ่มการพึ่งพาครั้งแรกlibxml2เวอร์ชัน 2.7.0 หรือใหม่กว่า

sudo apt-get install libxml2-dev

ขั้นตอนที่ 3

เพิ่มการพึ่งพาครั้งที่สองlibxsltรุ่น 1.1.23 หรือใหม่กว่า

sudo apt-get install libxslt1-dev

ขั้นตอนที่ 4

ติดตั้งเครื่องมือการจัดการแพคเกจpipก่อน และเรียกใช้คำสั่งนี้

pip install lxml

หากคุณมีข้อสงสัยคลิกที่นี่


8

หลังจากติดตั้งแพคเกจที่กล่าวถึงโดย AKX ฉันยังคงมีปัญหาเดียวกัน แก้ไขมันด้วย

apt-get install python-dev

6

สำหรับ Ubuntu 12.04.3 LTS (Pangolin ที่แม่นยำ) ฉันต้องทำ:

apt-get install libxml2-dev libxslt1-dev

(หมายเหตุ "1" ใน libxslt1-dev)

จากนั้นฉันเพิ่งติดตั้ง lxml ด้วย pip / easy_install


2

จาก Ubuntu 18.4 (Bionic Beaver) ขอแนะนำให้ใช้ apt แทน apt-get เนื่องจากมันมีโครงสร้างที่ดีกว่ามาก

sudo apt install libxml2-dev libxslt1-dev python-dev

หากคุณพอใจกับเวอร์ชั่นที่เก่ากว่าlxmlโดยสิ้นเชิงคุณสามารถลอง

sudo apt install python-lxml

1

คำตอบมากมายที่นี่ค่อนข้างเก่า
ขอบคุณตัวชี้จาก @Simplans ( https://stackoverflow.com/a/37759871/417747 ) และหน้าแรก ...

ทำงานได้ดีสำหรับฉัน (Ubuntu bionic):

sudo apt-get install python3-lxml  

(+ sudo apt-get install libxml2-dev libxslt1-devฉันติดตั้งไว้ก่อนหน้านี้ แต่ไม่แน่ใจว่ายังมีความต้องการอยู่หรือไม่)


1
ใช่คำตอบเก่ากับคำถามเก่า ฉันหมายถึงฉันอยู่ใน Ubuntu 11 เมื่อฉันถาม!
Eric Wilson

ใช่ฉันสงสัยว่าคุณจะสามารถถามได้ที่นี่อีกต่อไป (จะถูกย้ายไปที่ ubuntu ฯลฯ ) แต่ก็ยังไม่ได้รับการค้นหามากนัก และสงสัยว่าทุกคนยังคงใช้ Ubuntu 11 :) และจากนั้นรุ่นลินุกซ์และแพคเกจที่เข้ากันไม่ได้หวังว่าจะดีขึ้นหนึ่งวัน
NSGaga ส่วนใหญ่ไม่ได้ใช้งาน

0

ก่อนติดตั้งpython-lxmlแพ็คเกจของ Ubuntu และการอ้างอิง:

sudo apt-get install python-lxml

จากนั้นใช้pipเพื่ออัปเกรดเป็น lxml เวอร์ชันล่าสุดสำหรับ Python:

pip install lxml

รหัสเท่านั้นคำตอบจะขมวดคิ้วเมื่อ เพิ่มคำอธิบายบางอย่าง
Manos Nikolaidis

แม้ว่าคำตอบนี้อาจถูกต้องโปรดเพิ่มคำอธิบาย การให้เหตุผลพื้นฐานที่สำคัญกว่าเพียงแค่ให้รหัสเพราะมันช่วยให้ OP และผู้อ่านรายอื่นสามารถแก้ไขปัญหานี้และปัญหาที่คล้ายกันได้
CodeMouse92

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