Installer le module lxml en python


88

lors de l'exécution d'un script python, j'ai eu cette erreur

  from lxml import etree
ImportError: No module named lxml

maintenant j'ai essayé d'installer lxml

sudo easy_install lmxl

mais cela me donne l'erreur suivante

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

Utilisation de la configuration de construction 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

Réponses:


106

Faites simplement:

sudo apt-get install python-lxml

Pour Python 2 (par exemple, requis par Inkscape):

sudo apt-get install python2-lxml

Si vous prévoyez d'installer à partir de la source, la réponse d'albertov vous aidera. Mais à moins qu'il n'y ait une raison, ne le faites pas, installez-le simplement à partir du référentiel.


6
Si vous utilisez un environnement virtuel, ce n'est pas la bonne réponse.
AlexLordThorsen

71

Je l'ai résolu en mettant à jour la version lxml avec:

pip install --upgrade lxml

49

Vous devez installer les fichiers d'en-tête de Python (package python-dev dans debian / ubuntu) pour compiler lxml. Ainsi que libxml2, libxslt, libxml2-dev et libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev

2
et libxml2-dev et libxslt-dev.
Lennart Regebro le

1
libxslt ne semble pas nécessaire (ce n'était pas pour moi du moins). Par conséquent, cela apt-get install python-dev libxml2 libxml2-dev libxslt-devdevrait suffire
Mathieu

J'ai dû faire cela pour installer WeasyPrint, leurs apt-getinstructions pour Debian 7 seules ne fonctionnaient pas.
cnst le

1
libxslt était essentiel pour moi, l'installation de lxml ne passerait pas sans elle.
axil

32

Si vous exécutez python3, vous devrez faire:

pip3 install lxml


C'est ce qui a fonctionné pour moi! J'utilisais python3 et installais des bibliothèques pour une version précédente de python via pip. Car python3, nous devrions utiliser pip3.
Victor

5

Pour RHEL / CentOS, exécutez la commande "python --version" pour connaître la version de Python. Par exemple ci-dessous:

$ python --version 
  Python 2.7.12

Maintenant, lancez "sudo yum search lxml" pour découvrir le paquet 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

Maintenant, vous pouvez choisir le package selon votre version Python et exécuter la commande comme ci-dessous:

$ sudo yum install python27-lxml.x86_64

Je suis sous Windows. Des solutions?
Paul

utilisez "python2.7.exe -m pip install --upgrade lxml"
Oni


0

Si vous rencontrez ce problème sur une image basée sur Alpine, essayez ceci:

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

// pip install -r requirements.txt

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.