Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install lxml on Windows

I'm trying to install lmxl on my Windows 8.1 laptop with Python 3.4 and failing miserably.

First off, I tried the simple and obvious solution: pip install lxml. However, this didn't work. Here's what it said:

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 

So then I looked on this great and helpful thing called The Internet and a lot of people have the same error of needing libxml2 and libxlst. They recommend a guy called Christoph Gohlke's page where he provides some sort of binary thingy for a bunch of packages. You can find it here (quicklink to the lxml part).

So after I gave up on trying to find libxml2 and libxslt for pip, I decided to go there, and found an absolute ton of downloads. I know I need a 64-bit one, but I have no idea which "cp" I need.

So an answer either giving me a solution on the pip method or the Gohlke index method would be great.

like image 281
spelchekr Avatar asked Apr 03 '15 22:04

spelchekr


People also ask

How do I know if lxml is installed?

You can check if you have the lxml package installed by running the pip show lxml command. Copied! The pip show lxml command will either state that the package is not installed or show a bunch of information about the package, including the location where the package is installed.

Is lxml included in Python?

lxml has been downloaded from the Python Package Index millions of times and is also available directly in many package distributions, e.g. for Linux or macOS.

How do I use lxml in PyCharm?

Settings->Project->Project Interpreter. After this you should see the interpreter that PyCharm uses to run your project. If you don't see lxml in the package's table, you can press the plus icon in the right corner of the window and type lxml and proceed with the installation.


1 Answers

Or you can also go to Christoph's Gohlke's Python page and then download the right lxml file. (Generally since I use python 3.4 and I have a windows, I download the lxml-3.4.4-cp34-none-win32.whl)

Go to the folder it is in. Click in the background (so nothing is selected), then leftshift + rightclick at the same time and click on open command window. Then type C:/Python34/Scripts/pip install "NAME OF THE FILE YOU JUST DOWNLOADED.whl"

In this case it would be C:/Python34/Scripts/pip install "lxml-3.4.4-cp34-none-win32.whl"

Now hit enter. This worked well for me, and after you type the quote you can also press tab and it should fill the right one for you.

like image 69
Kenny Truong Avatar answered Oct 04 '22 04:10

Kenny Truong