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

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.


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

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

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


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

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.