web-dev-qa-db-fra.com

Installation du module lxml dans python

en exécutant 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 compilation 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
76
user563101

Il suffit de faire:

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, alors réponse d’Albertov vous aidera. Mais à moins qu'il n'y ait une raison, non, installez-le simplement à partir du référentiel.

101
user225312

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

pip install --upgrade lxml
52
dbarenas

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

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

Si vous utilisez python3, vous devrez faire:

pip3 install lxml

22
yennycheung

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

$ python --version 
  Python 2.7.12

Maintenant, lancez "Sudo yum search lxml" pour trouver 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 paquet selon votre Python et exécuter la commande comme ci-dessous:

$ Sudo yum install python27-lxml.x86_64
4
Krishna Pandey