Installation des lxml-Moduls in Python

87

Beim Ausführen eines Python-Skripts wurde dieser Fehler angezeigt

  from lxml import etree
ImportError: No module named lxml

Jetzt habe ich versucht, lxml zu installieren

sudo easy_install lmxl

aber es gibt mir den folgenden Fehler

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

Verwenden der Build-Konfiguration von 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
user563101
quelle

Antworten:

105

Mach einfach:

sudo apt-get install python-lxml

Für Python 2 (z. B. von Inkscape erforderlich):

sudo apt-get install python2-lxml

Wenn Sie vorhaben, von der Quelle aus zu installieren, hilft die Antwort von albertov . Wenn es keinen Grund gibt, installieren Sie ihn nicht einfach aus dem Repository.

user225312
quelle
6
Wenn Sie eine virtuelle Umgebung verwenden, ist dies nicht die richtige Antwort.
AlexLordThorsen
70

Ich habe es gelöst, indem ich die lxml-Version aktualisiert habe mit:

pip install --upgrade lxml
dbarenas
quelle
49

Sie müssen Pythons Header-Dateien (Python-Dev-Paket in Debian / Ubuntu) installieren, um lxml zu kompilieren. Sowie libxml2, libxslt, libxml2-dev und libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev
albertov
quelle
2
und libxml2-dev und libxslt-dev.
Lennart Regebro
1
libxslt scheint nicht erforderlich zu sein (es war zumindest nicht für mich). Daher apt-get install python-dev libxml2 libxml2-dev libxslt-devsollte genug sein
Mathieu
Ich musste dies tun, um WeasyPrint zu installieren. Die apt-getAnweisungen für Debian 7 allein funktionierten nicht.
cnst
1
libxslt war für mich unerlässlich, das lxml-Setup würde ohne es nicht durchgehen.
Axil
31

Wenn Sie python3 ausführen, müssen Sie Folgendes tun:

pip3 install lxml

Yennycheung
quelle
Das hat bei mir funktioniert! Ich habe python3 verwendet und Bibliotheken für eine frühere Version von python via installiert pip. Für python3sollten wir verwenden pip3.
Victor
5

Führen Sie für RHEL / CentOS den Befehl "python --version" aus, um die Python-Version herauszufinden. ZB unten:

$ python --version 
  Python 2.7.12

Führen Sie nun "sudo yum search lxml" aus, um das Python * -lxml-Paket herauszufinden.

$ 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

Jetzt können Sie das Paket gemäß Ihrer Python-Version auswählen und den folgenden Befehl ausführen:

$ sudo yum install python27-lxml.x86_64
Krishna Pandey
quelle
Ich bin unter Windows. Irgendwelche Lösungen?
Paul
benutze "python2.7.exe -m pip install --upgrade lxml"
Oni
0

Wenn Sie dieses Problem bei einem alpinen Bild feststellen, versuchen Sie Folgendes:

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

// pip installiere -r Anforderungen.txt

Ryan Augustine
quelle