Cara menginstal lxml di Ubuntu

442

Saya mengalami kesulitan menginstal lxml dengan easy_install di Ubuntu 11.

Ketika saya mengetik $ easy_install lxmlsaya mendapatkan:

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.

Tampaknya libxsltatau libxml2tidak diinstal. Saya sudah mencoba mengikuti petunjuk di http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php dan http://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux. php tanpa hasil.

Jika saya coba wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gzsaya dapatkan

<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'.

Jika saya mencoba yang lain terlebih dahulu, saya akan melakukannya ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2dan pada akhirnya akan gagal dengan:

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

Saya sudah mencoba kedua versi 2.6.27dan 2.6.29dari libxml2dengan tidak ada perbedaan.

Tanpa meninggalkan kebutuhan bisnis yang terlewat, saya telah berhasil melakukannya sudo apt-get install libxml2-dev, tetapi ini tidak mengubah apa pun.

Eric Wilson
sumber

Jawaban:

950

Karena Anda menggunakan Ubuntu, jangan repot-repot dengan paket-paket sumber tersebut. Instal saja paket pengembangan tersebut menggunakan apt-get.

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

Jika Anda senang dengan versi lxml yang mungkin lebih lama, Anda bisa mencoba

apt-get install python-lxml

dan dilakukan dengan itu. :)

AKX
sumber
51
jawaban ini harus ditambahkan ke petunjuk instalasi lxml :) terima kasih +1
Boaz
43
Setelah berlari apt-get install libxml2-dev libxslt-devAnda bisaeasy_install lxml
Bob Jansen
11
di distro seperti ubuntu terbaru, Anda harus menginstal libxslt1-dev alih-alih libxslt-dev
Jose A. Martín
21
Setidaknya pada Ubuntu 14.04 Anda juga harus menginstal paket zlib1g-dev.
Christian Berendt
3
Di Ubuntu 16.04 juga zlib1g-devdiperlukan. Tanpa ini saya mendapatkan kesalahan /usr/bin/ld: cannot find -lz.
Jabba
111

Saya juga harus menginstal lib32z1-dev sebelum lxml akan dikompilasi (Ubuntu 13.04 x64).

sudo apt-get install lib32z1-dev

Atau semua paket yang dibutuhkan bersamaan:

sudo apt-get install libxml2-dev libxslt-dev python-dev lib32z1-dev
Druska
sumber
9
+1. Paket ini diperlukan bahkan setelah menginstal semua paket yang disebutkan lainnya.
Jayesh Bhoot
1
ya saya juga membutuhkan ini pada 13,04
mwjackson
3
Mengapa perlu header paket lib32? Mungkin zlib1g-dev juga akan berfungsi?
Pepijn
1
zlib1g-dev diperlukan di ubuntu 13.04
Zelo
6
Juga diperlukan pada 14,04 64 bit.
Kristinn Örn Sigurðsson
43

Ketika @Pepijn mengomentari jawaban @Druska, di ubuntu 13.04 x64, tidak perlu menggunakan lib32z1-dev, zlib1g-dev sudah cukup:

sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
JimmyYe
sumber
16

Saya menginstal lxml dengan pip di Vagrant, menggunakan Ubuntu 14.04 dan memiliki masalah yang sama. Meskipun semua persyaratan telah terinstal, saya mendapatkan kesalahan yang sama berulang kali. Ternyata, VM saya harus sedikit memori secara default. Dengan 1024 MB semuanya bekerja dengan baik.

Tambahkan ini ke VagrantFile Anda dan lxml harus mengkompilasi / menginstal dengan benar:

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

Berkat sixhobbit untuk petunjuknya (lihat: tidak dapat menginstal lxml di Ubuntu 12.04 ).

Chris
sumber
Ini berhasil untuk saya. Terima kasih. Dikatakan kompilasi gagal dengan status 4, dalam kasus yang membantu orang lain.
Kurtis
jawaban ini tidak ada hubungannya dengan pertanyaan OP
Corey Goldberg
10

Untuk Ubuntu 14.04

sudo apt-get install python-lxml

bekerja untukku.

Menyeberang
sumber
7
Nah itu berita buruk. Saya telah memperoleh lebih dari 1000 perwakilan dari pertanyaan ini, jika mereka telah memperbaiki bahwa itu akan berhenti mendapatkan pandangan ... 😊
Eric Wilson
9

Langkah 1

Instal pembaruan python terbaru menggunakan perintah ini.

sudo apt-get install python-dev

Langkah 2

Tambahkan dependensi pertama libxml2 versi 2.7.0 atau yang lebih baru

sudo apt-get install libxml2-dev

Langkah 3

Tambahkan libxslt ketergantungan kedua versi 1.1.23 atau yang lebih baru

sudo apt-get install libxslt1-dev

Langkah 4

Instal alat manajemen paket pip terlebih dahulu. dan jalankan perintah ini.

pip install lxml

Jika Anda ragu Klik di Sini

Simplans
sumber
8

Setelah menginstal paket yang disebutkan oleh AKX saya masih memiliki masalah yang sama. Dipecahkan dengan

apt-get install python-dev
bcoughlan
sumber
6

Untuk Ubuntu 12.04.3 LTS (Precise Pangolin) yang harus saya lakukan:

apt-get install libxml2-dev libxslt1-dev

(Catat "1" di libxslt1-dev)

Lalu saya baru saja menginstal lxml dengan pip / easy_install.

gonz
sumber
2

Dari Ubuntu 18.4 (Bionic Beaver) disarankan untuk menggunakan apt daripada apt-get karena memiliki bentuk struktural yang jauh lebih baik.

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

Jika Anda senang dengan versi yang mungkin lebih lama dari lxmlsemuanya, Anda bisa mencoba

sudo apt install python-lxml
Rarblack
sumber
1

Banyak jawaban di sini agak lama,
berkat pointer dari @Simplans ( https://stackoverflow.com/a/37759871/417747 ) dan halaman beranda ...

Apa yang berhasil untuk saya (Ubuntu bionic):

sudo apt-get install python3-lxml  

(+ sudo apt-get install libxml2-dev libxslt1-devSaya menginstal sebelumnya, tetapi tidak yakin apakah itu persyaratannya masih)

NSGaga-kebanyakan-tidak aktif
sumber
1
Ya, jawaban lama atas pertanyaan lama. Maksud saya, saya berada di Ubuntu 11 ketika saya bertanya!
Eric Wilson
ya, saya ragu Anda bahkan dapat menanyakannya lagi di sini (akan dipindahkan ke ubuntu dll.) tetapi masih banyak penelusuran web. Dan ragu ada yang masih menggunakan Ubuntu 11 :). Dan kemudian versi linux lama dan paket-paket tidak kompatibel, berharap itu membaik suatu hari.
NSGaga-kebanyakan-tidak aktif
0

Pertama instal python-lxmlpaket Ubuntu dan dependensinya:

sudo apt-get install python-lxml

Kemudian gunakan pipuntuk meningkatkan ke versi terbaru lxml untuk Python:

pip install lxml
Yusuf
sumber
kode hanya jawaban yang disukai. Tambahkan beberapa penjelasan
Manos Nikolaidis
Meskipun jawaban ini mungkin benar, harap tambahkan beberapa penjelasan. Menanamkan logika yang mendasarinya lebih penting daripada hanya memberikan kode, karena itu membantu OP dan pembaca lain memperbaiki masalah ini dan masalah serupa itu sendiri.
CodeMouse92
Turun karena tidak ada yang baru ditambahkan ke pertanyaan yang sudah memiliki beberapa jawaban bagus.
Eric Wilson