J'essaie d'installer lmxl
sur mon ordinateur portable Windows 8.1 avec Python 3.4 et échoue lamentablement.
Tout d'abord, j'ai essayé la solution simple et évidente: pip install lxml
. Cependant, cela n'a pas fonctionné. Voici ce qu'il a dit:
Downloading/unpacking lxml
Running setup.py (path:C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml\setup.py) Egg_info for package lxml
Building lxml version 3.4.2.
Building without Cython.
ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
warning: no previously-included files found matching '*.py'
Installing collected packages: lxml
Running setup.py install for lxml
Building lxml version 3.4.2.
Building without Cython.
ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
building 'lxml.etree' extension
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
error: Unable to find vcvarsall.bat
Complete output from command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile:
Building lxml version 3.4.2.
Building without Cython.
ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
running install
running build
running build_py
creating build
creating build\lib.win32-3.4
creating build\lib.win32-3.4\lxml
copying src\lxml\builder.py -> build\lib.win32-3.4\lxml
copying src\lxml\cssselect.py -> build\lib.win32-3.4\lxml
copying src\lxml\doctestcompare.py -> build\lib.win32-3.4\lxml
copying src\lxml\ElementInclude.py -> build\lib.win32-3.4\lxml
copying src\lxml\pyclasslookup.py -> build\lib.win32-3.4\lxml
copying src\lxml\sax.py -> build\lib.win32-3.4\lxml
copying src\lxml\usedoctest.py -> build\lib.win32-3.4\lxml
copying src\lxml\_elementpath.py -> build\lib.win32-3.4\lxml
copying src\lxml\__init__.py -> build\lib.win32-3.4\lxml
creating build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\__init__.py -> build\lib.win32-3.4\lxml\includes
creating build\lib.win32-3.4\lxml\html
copying src\lxml\html\builder.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\clean.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\defs.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\diff.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\ElementSoup.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\formfill.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\html5parser.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\soupparser.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\usedoctest.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\_diffcommand.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\_html5builder.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\_setmixin.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\__init__.py -> build\lib.win32-3.4\lxml\html
creating build\lib.win32-3.4\lxml\isoschematron
copying src\lxml\isoschematron\__init__.py -> build\lib.win32-3.4\lxml\isoschematron
copying src\lxml\lxml.etree.h -> build\lib.win32-3.4\lxml
copying src\lxml\lxml.etree_api.h -> build\lib.win32-3.4\lxml
copying src\lxml\includes\c14n.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\config.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\dtdvalid.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\etreepublic.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\htmlparser.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\relaxng.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\schematron.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\tree.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\uri.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xinclude.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xmlerror.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xmlparser.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xmlschema.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xpath.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xslt.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\etree_defs.h -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\lxml-version.h -> build\lib.win32-3.4\lxml\includes
creating build\lib.win32-3.4\lxml\isoschematron\resources
creating build\lib.win32-3.4\lxml\isoschematron\resources\rng
copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win32-3.4\lxml\isoschematron\resources\rng
creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl
creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
error: Unable to find vcvarsall.bat
----------------------------------------
Cleaning up...
Command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile failed with error code 1 in C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml
Storing debug log for failure in C:\Users\carte_000\pip\pip.log
Alors j'ai regardé ce truc génial et utile appelé Internet et beaucoup de gens ont la même erreur d'avoir besoin de libxml2
et libxlst
. Ils recommandent un gars appelé la page de Christoph Gohlke où il fournit une sorte de truc binaire pour un tas de paquets. Vous pouvez le trouver ici ( lien rapide vers la partie lxml ).
Donc, après avoir renoncé à essayer de trouver libxml2 et libxslt pour pip, j'ai décidé d'y aller et j'ai trouvé une tonne absolue de téléchargements. Je sais que j'en ai besoin d'un 64 bits, mais je ne sais pas de quel "cp
" j'ai besoin.
Donc, une réponse me donnant une solution sur la méthode pip
ou la méthode d'index de Gohlke serait formidable.
Tout d'abord, suite aux commentaires, j'ai téléchargé le lxml-3.4.2-cp34-none-win_AMD64.whl
fichier et a essayé de l'ouvrir avec un pip install
, mais il m'a juste dit que ce n'était pas un fichier de roue valide sur mon système ou quelque chose.
Ensuite, j'ai téléchargé le win_32
fichier et cela a fonctionné! C'est peut-être parce que j'ai un processeur Intel et AMD64 est, sans surprise, uniquement pour les processeurs AMD.
Ou vous pouvez aussi aller à Christoph's Gohlke's Python page puis télécharger le bon fichier lxml. (Généralement depuis que j'utilise python 3.4 et j'ai une fenêtre, je télécharge le lxml-3.4.4-cp34-none-win32.whl)
Accédez au dossier dans lequel il se trouve. Cliquez en arrière-plan (pour que rien ne soit sélectionné), puis appuyez sur le bouton gauche + droite en même temps et cliquez sur la fenêtre de commande ouverte. Tapez ensuite C:/Python34/Scripts/pip install "NOM DU FICHIER QUE VOUS AVEZ JUSTE TÉLÉCHARGÉ.whl"
Dans ce cas, ce serait C:/Python34/Scripts/pip install "lxml-3.4.4-cp34-none-win32.whl"
Appuyez maintenant sur Entrée. Cela a bien fonctionné pour moi, et après avoir tapé le devis, vous pouvez également appuyer sur tab et il devrait remplir le bon pour vous.
Ces instructions concernent Windows7 ou Windows8 avec Python3.4 .
Cependant , ils devraient fonctionner pour différentes versions car les versions de python et autres prérequis respectifs changent/évoluent:
C:\python34\
lorsqu'on lui a demandé au cours de l'assistant d'installation Python InstallationC:\python33\
et C:\python34\scripts
dossiers dans le chemin système en ajoutant ces répertoires à la variable d'environnement PATH
à partir du Panneau de configuration> Système> Lien Paramètres système avancés (onglet Avancé)> Variables d'environnement (bouton ) .c:\openssl-win32\bin
(ou similaire) dans votre PATH
, de la même manière que vous avez ajouté C:\python34
et C:\python34\scripts
au dessus de.get-pip.py
devrait installer Setuptools pour vous), mais au cas où ... ez_setup.py
ICI et enregistrez-le dans C:\python34\scripts
C:\python34\scripts> python ez_setup.py
get-pip.py
de [[# # ~] ici [~ # ~] et enregistrez-le dans C:\python34\scripts
C:\python34\scripts> python get-pip.py
LXML 3.4.4
de ICI pour votre version de l'architecture Windows et PCJe rencontre également ce problème récemment. pip ne peut pas ne pas fonctionner sur le fichier .whl. Au lieu de résoudre ce problème, je l'installe via le fichier .exe. vous pouvez le télécharger depuis ici . Veuillez choisir la bonne version de votre python. J'espère que cela peut vous aider.
On dirait qu'aujourd'hui en 2018, lxml
peut être installé à partir de PyPI:
C:\Users\Administrator>"c:\Program Files\Python37\python.exe" -m pip install -U pip wheel setuptools
Collecting pip
Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 3.3MB/s
Collecting wheel
Downloading https://files.pythonhosted.org/packages/5a/9b/6aebe9e2636d35d1a93772fa644c828303e1d5d124e8a88f156f42ac4b87/wheel-0.32.2-py2.py3-none-any.whl
Collecting setuptools
Downloading https://files.pythonhosted.org/packages/96/06/c8ee69628191285ddddffb277bd5abdf769166e7a14b867c2a172f0175b1/setuptools-40.4.3-py2.py3-none-any.whl (569kB)
100% |████████████████████████████████| 573kB 2.9MB/s
Installing collected packages: pip, wheel, setuptools
Found existing installation: pip 10.0.1
Uninstalling pip-10.0.1:
Successfully uninstalled pip-10.0.1
The script wheel.exe is installed in 'c:\Program Files\Python37\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Found existing installation: setuptools 39.0.1
Uninstalling setuptools-39.0.1:
Successfully uninstalled setuptools-39.0.1
Successfully installed pip-18.1 setuptools-40.4.3 wheel-0.32.2
C:\Users\Administrator>pip install lxml
Collecting lxml
Downloading https://files.pythonhosted.org/packages/d7/9d/1aa28aa9d293a816baec6c37328d6465b722b2ff3f4d1e93ed56e87813ee/lxml-4.2.5-cp37-cp37m-win_AMD64.whl (3.6MB)
100% |████████████████████████████████| 3.6MB 1.6MB/s
Installing collected packages: lxml
Successfully installed lxml-4.2.5
C:\Users\Administrator>python
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from io import BytesIO
>>> some_file_or_file_like_object = BytesIO(b"<root>data</root>")
>>> from lxml import etree
>>> tree = etree.parse(some_file_or_file_like_object)
>>> etree.tostring(tree)
b'<root>data</root>'
J'ai eu ce problème avec un fichier d'exigences répertoriant lxml == 4.2.1. Cependant, j'ai pu résoudre le problème en le mettant à jour vers lxml == 4.2.5.
Sur le site Web du distributeur, la commande correcte est:
pip install lxml==3.4.4
Bien sûr, mettez à jour le numéro de version pour qu'il corresponde à la dernière version.
Référence: https://pypi.org/project/lxml/3.4.4/