easy_install lxml on Python 2.7 on Windows

easy-install, lxml, python, python-2.7, setuptools

Solution

lxml >= 3.x.x

- download one of the MS Windows Installer packages

- `easy_install "c:/lxml_installer.exe"` (credit kobejohn)

MS Windows Installer downloads available for lxml 3.3.5

a list of all binary/egg lxml package downloads.

lxml 2.3.x there is no windows binary egg for lxml 2.3.3 (2.3.0 is the latest from 2.x.x). without giving a version number easy_install will download the latest sources, but you dont have the libxml2 and libxslt installed.

you could install the missing libs or you could try the 2.3 as there are binary eggs for windows: `easy_install lxml==2.3`

Problem

I'm using python 2.7 on Windows. How come the following error occurs when I try to install [lxml][1] using [setuptools][2]'s easy_install? ``` C:\>easy_install lxml Searching for lxml Reading http://pypi.python.org/simple/lxml/ Reading http://codespeak.net/lxml Best match: lxml 2.3.3 Downloading http://lxml.de/files/lxml-2.3.3.tgz Processing lxml-2.3.3.tgz Running lxml-2.3.3\setup.py -q bdist_egg --dist-dir c:\users\my_user\appdata\local\temp\easy_install-mtrdj2\lxml-2.3.3\egg-dist-tmp-tq8rx4 Building lxml version 2.3.3. Building without Cython. ERROR: 'xslt-config' is not recognized as an internal or external command, operable program or batch file. ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt warning: no files found matching 'lxml.etree.c' under directory 'src\lxml' warning: no files found matching 'lxml.objectify.c' under directory 'src\lxml' warning: no files found matching 'lxml.etree.h' under directory 'src\lxml' warning: no files found matching 'lxml.etree_api.h' under directory 'src\lxml' warning: no files found matching 'etree_defs.h' under directory 'src\lxml' warning: no files found matching 'pubkey.asc' under directory 'doc' warning: no files found matching 'tagpython*.png' under directory 'doc' warning: no files found matching 'Makefile' under directory 'doc' error: Setup script exited with error: Unable to find vcvarsall.bat ``` Downloading the package and running `setup.py install` also doesn't help: ``` D:\My Documents\Installs\Dev\Python\lxml\lxml-2.3.3>setup.py install Building lxml version 2.3.3. Building without Cython. ERROR: 'xslt-config' is not recognized as an internal or external command, operable program or batch file. ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt running install running bdist_egg running egg_info writing src\lxml.egg-info\PKG-INFO writing top-level names to src\lxml.egg-info\top_level.txt writing dependency_links to src\lxml.egg-info\dependency_links.txt reading manifest file 'src\lxml.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'lxml.etree.c' under directory 'src\lxml' warning: no files found matching 'lxml.objectify.c' under directory 'src\lxml' warning: no files found matching 'lxml.etree.h' under directory 'src\lxml' warning: no files found matching 'lxml.etree_api.h' under directory 'src\lxml' warning: no files found matching 'etree_defs.h' under directory 'src\lxml' warning: no files found matching 'pubkey.asc' under directory 'doc' warning: no files found matching 'tagpython*.png' under directory 'doc' warning: no files found matching 'Makefile' under directory 'doc' writing manifest file 'src\lxml.egg-info\SOURCES.txt' installing library code to build\bdist.win32\egg running install_lib running build_py creating build creating build\lib.win32-2.7 creating build\lib.win32-2.7\lxml copying src\lxml\builder.py -> build\lib.win32-2.7\lxml copying src\lxml\cssselect.py -> build\lib.win32-2.7\lxml copying src\lxml\doctestcompare.py -> build\lib.win32-2.7\lxml copying src\lxml\ElementInclude.py -> build\lib.win32-2.7\lxml copying src\lxml\pyclasslookup.py -> build\lib.win32-2.7\lxml copying src\lxml\sax.py -> build\lib.win32-2.7\lxml copying src\lxml\usedoctest.py -> build\lib.win32-2.7\lxml copying src\lxml\_elementpath.py -> build\lib.win32-2.7\lxml copying src\lxml\__init__.py -> build\lib.win32-2.7\lxml creating build\lib.win32-2.7\lxml\html copying src\lxml\html\builder.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\clean.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\defs.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\diff.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\ElementSoup.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\formfill.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\html5parser.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\soupparser.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\usedoctest.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\_dictmixin.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\_diffcommand.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\_html5builder.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\_setmixin.py -> build\lib.win32-2.7\lxml\html copying src\lxml\html\__init__.py -> build\lib.win32-2.7\lxml\html creating build\lib.win32-2.7\lxml\isoschematron copying src\lxml\isoschematron\__init__.py -> build\lib.win32-2.7\lxml\isoschematron copying src\lxml\etreepublic.pxd -> build\lib.win32-2.7\lxml copying src\lxml\tree.pxd -> build\lib.win32-2.7\lxml copying src\lxml\etree_defs.h -> build\lib.win32-2.7\lxml creating build\lib.win32-2.7\lxml\isoschematron\resources creating build\lib.win32-2.7\lxml\isoschematron\resources\rng copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win32-2.7\lxml\isoschematron\resources\rng creating build\lib.win32-2.7\lxml\isoschematron\resources\xsl copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl creating build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win32-2.7\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-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 running build_ext building 'lxml.etree' extension error: Unable to find vcvarsall.bat [1]: http://lxml.de/ [2]: http://pypi.python.org/pypi/setuptools ```

Original source