Instalación del módulo lxml en python

88

mientras ejecutaba un script de Python, recibí este error

  from lxml import etree
ImportError: No module named lxml

ahora intenté instalar lxml

sudo easy_install lmxl

pero me da el siguiente error

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

Usando la configuración de compilación de 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
usuario563101
fuente

Respuestas:

106

Solo haz:

sudo apt-get install python-lxml

Para Python 2 (por ejemplo, requerido por Inkscape):

sudo apt-get install python2-lxml

Si planea instalar desde la fuente, la respuesta de albertov lo ayudará. Pero a menos que haya una razón, no lo haga, simplemente instálelo desde el repositorio.

user225312
fuente
6
Si está utilizando un entorno virtual, esta no es la respuesta correcta.
AlexLordThorsen
71

Lo resolví actualizando la versión lxml con:

pip install --upgrade lxml
dbarenas
fuente
49

Necesita instalar los archivos de encabezado de Python (paquete python-dev en debian / ubuntu) para compilar lxml. Además de libxml2, libxslt, libxml2-dev y libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev
albertov
fuente
2
y libxml2-dev y libxslt-dev.
Lennart Regebro
1
libxslt no parece ser necesario (al menos no lo era para mí). Por lo tanto, apt-get install python-dev libxml2 libxml2-dev libxslt-devdebería ser suficiente
Mathieu
Tuve que hacer esto para instalar WeasyPrint, sus apt-getinstrucciones solo para Debian 7 no funcionaron.
cnst
1
libxslt era esencial para mí, la configuración de lxml no funcionaría sin él.
axila
32

Si está ejecutando python3, tendrá que hacer:

pip3 install lxml

yennycheung
fuente
¡Esto es lo que funcionó para mí! Estaba usando python3 e instalando bibliotecas para una versión anterior de python a través de pip. Porque python3deberíamos usar pip3.
Victor
5

Para RHEL / CentOS, ejecute el comando "python --version" para averiguar la versión de Python. Por ejemplo, a continuación:

$ python --version 
  Python 2.7.12

Ahora ejecute "sudo yum search lxml" para averiguar el paquete 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

Ahora puede elegir el paquete según su versión de Python y ejecutar el comando como se muestra a continuación:

$ sudo yum install python27-lxml.x86_64
Krishna Pandey
fuente
Estoy en Windows. ¿Alguna solución?
Paul
use "python2.7.exe -m pip install --upgrade lxml"
Oni
1

Para Python 3 esto funcionó para mí

sudo apt-get install python3-lxml
Macumbaomuerte
fuente
0

Si encuentra este problema en una imagen basada en Alpine, intente esto:

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

// pip install -r requirements.txt

Ryan Augustine
fuente