Menginstal modul lxml dengan python

89

saat menjalankan skrip python, saya mendapat kesalahan ini

  from lxml import etree
ImportError: No module named lxml

sekarang saya mencoba menginstal lxml

sudo easy_install lmxl

tapi itu memberi saya kesalahan berikut

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 **

Menggunakan konfigurasi build 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
pengguna563101
sumber

Jawaban:

108

Kerjakan saja:

sudo apt-get install python-lxml

Untuk Python 2 (misalnya, dibutuhkan oleh Inkscape):

sudo apt-get install python2-lxml

Jika Anda berencana untuk menginstal dari sumber, maka jawaban albertov akan membantu. Tetapi kecuali ada alasannya, jangan, instal saja dari repositori.

pengguna225312
sumber
6
Jika Anda menggunakan lingkungan virtual, ini bukan jawaban yang tepat.
AlexLordThorsen
72

Saya menyelesaikannya dengan meningkatkan versi lxml dengan:

pip install --upgrade lxml
dbarenas
sumber
49

Anda perlu menginstal file header Python (paket python-dev di debian / ubuntu) untuk mengkompilasi lxml. Serta libxml2, libxslt, libxml2-dev, dan libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev
albertov.dll
sumber
2
dan libxml2-dev dan libxslt-dev.
Lennart Regebro
1
libxslt tampaknya tidak diperlukan (setidaknya itu bukan untuk saya). Oleh karena itu, apt-get install python-dev libxml2 libxml2-dev libxslt-devharus cukup
Mathieu
Saya harus melakukan ini untuk menginstal WeasyPrint, apt-getinstruksi mereka untuk Debian 7 saja tidak berfungsi.
cnst
1
libxslt sangat penting bagi saya, penyiapan lxml tidak akan berjalan tanpanya.
axil
35

Jika Anda menjalankan python3, Anda harus melakukan:

pip3 install lxml

yennycheung
sumber
Inilah yang berhasil untuk saya! Saya menggunakan python3 dan menginstal perpustakaan untuk versi python sebelumnya melalui pip. Sebab python3, sebaiknya kita gunakan pip3.
Victor
5

Untuk RHEL / CentOS, jalankan perintah "python --version" untuk mengetahui versi Python. Misalnya di bawah ini:

$ python --version 
  Python 2.7.12

Sekarang jalankan "sudo yum search lxml" untuk mengetahui paket 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

Sekarang Anda dapat memilih paket sesuai versi Python Anda dan menjalankan perintah seperti di bawah ini:

$ sudo yum install python27-lxml.x86_64
Krishna Pandey
sumber
Saya menggunakan Windows. Ada solusi?
Paul
gunakan "python2.7.exe -m pip install --upgrade lxml"
Oni
2

Untuk python 3 ini berhasil untuk saya

sudo apt-get install python3-lxml
Macumbaomuerte
sumber
0

Jika Anda mengalami masalah ini pada gambar berbasis Alpine coba ini:

apk add --update --no-cache g++ gcc libxml2-dev libxslt-dev python-dev libffi-dev openssl-dev make

// pip install -r requirement.txt

Ryan Augustine
sumber