lxml install on windows 7 using pip and python 2.7

user2091046 picture user2091046 · Dec 9, 2013 · Viewed 36.8k times · Source

When I try to upgrade lxml using pip on my windows 7 machine I get the log printed below.

When I uninstall and try to install from scratch I get the same errors. Any ideas?

Downloading/unpacking lxml from https://pypi.python.org/packages/source/l/lxml/l xml-3.2.4.tar.gz#md5=cc363499060f615aca1ec8dcc04df331 Downloading lxml-3.2.4.tar.gz (3.3MB): 3.3MB downloaded Running setup.py egg_info for package lxml Building lxml version 3.2.4. Building without Cython. ERROR: Nazwa 'xslt-config' nie jest rozpoznawana jako polecenie wewnętrzne l ub zewnętrzne, program wykonywalny lub plik wsadowy.

** make sure the development packages of libxml2 and libxslt are installed *

*

Using build configuration of libxslt
D:\software\Python27\lib\distutils\dist.py:267: UserWarning: Unknown distrib ution option: 'bugtrack_url'
  warnings.warn(msg)

warning: no files found matching 'lxml.etree.c' under directory 'src\lxml'
warning: no files found matching 'lxml.objectify.c' under directory 'src\lxm l'
warning: no files found matching 'lxml.etree.h' under directory 'src\lxml'
warning: no files found matching 'lxml.etree_api.h' under directory 'src\lxm l'
warning: no files found matching 'etree_defs.h' under directory 'src\lxml'
warning: no files found matching '*.txt' under directory 'src\lxml\tests'
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' Installing collected packages: lxml   Found existing installation:

lxml 2.3 Uninstalling lxml: Successfully uninstalled lxml Running setup.py install for lxml Building lxml version 3.2.4. Building without Cython. ERROR: Nazwa 'xslt-config' nie jest rozpoznawana jako polecenie wewnętrzne l ub zewnętrzne, program wykonywalny lub plik wsadowy.

** make sure the development packages of libxml2 and libxslt are installed *

*

Using build configuration of libxslt
building 'lxml.etree' extension
D:\software\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3  /GS- /DNDEBUG

-Ic:\users\x\appdata\local\temp\pip_build_x\lxml\src\lxml\inc ludes -ID:\software\Python27\include -ID:\software\Python27\PC /Tcsrc\lxml\lxml. etree.c /Fobuild\temp.win32-2.7\Release\src\lxml\lxml.etree.obj lxml.etree.c c:\users\x\appdata\local\temp\pip_build_x\lxml\src\lxml\includes\etree_d efs.h(9) : fatal error C1083: Cannot open include file: 'libxml/xmlversion.h': N o such file or directory D:\software\Python27\lib\distutils\dist.py:267: UserWarning: Unknown distrib ution option: 'bugtrack_url' warnings.warn(msg) error: command '"D:\software\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' fai led with exit status 2 Complete output from command D:\software\Python27\python.exe -c "import setu ptools;file='c:\users\x\appdata\local\temp\pip_build_x\lxml\setu p.py';exec(compile(open(file).read().replace('\r\n', '\n'), file, 'exec' ))" install --record c:\users\x\appdata\local\temp\pip-pyyuss-record\install-r ecord.txt --single-version-externally-managed: Building lxml version 3.2.4.

Building without Cython.

ERROR: Nazwa 'xslt-config' nie jest rozpoznawana jako polecenie wewnętrzne lub z ewnętrzne,

program wykonywalny lub plik wsadowy.

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

copying src\lxml\includes__init__.py -> build\lib.win32-2.7\lxml\includes

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_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\isoschema tron

copying src\lxml\lxml.etree.h -> build\lib.win32-2.7\lxml

copying src\lxml\lxml.etree_api.h -> build\lib.win32-2.7\lxml

copying src\lxml\includes\c14n.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\config.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\dtdvalid.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\etreepublic.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\htmlparser.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\relaxng.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\schematron.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\tree.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\uri.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\xinclude.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\xmlerror.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\xmlparser.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\xmlschema.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\xpath.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\xslt.pxd -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\etree_defs.h -> build\lib.win32-2.7\lxml\includes

copying src\lxml\includes\lxml-version.h -> build\lib.win32-2.7\lxml\includes

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.win 32-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-xsl t1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_e xpand.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron -xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_inclu de.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xs lt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron _message.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schemat ron-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_x slt1.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

creating build\temp.win32-2.7

creating build\temp.win32-2.7\Release

creating build\temp.win32-2.7\Release\src

creating build\temp.win32-2.7\Release\src\lxml

D:\software\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS - /DNDEBUG -Ic:\users\x\appdata\local\temp\pip_build_x\lxml\src\lxml\include s -ID:\software\Python27\include -ID:\software\Python27\PC /Tcsrc\lxml\lxml.etre e.c /Fobuild\temp.win32-2.7\Release\src\lxml\lxml.etree.obj

lxml.etree.c

c:\users\x\appdata\local\temp\pip_build_x\lxml\src\lxml\includes\etree_defs. h(9) : fatal error C1083: Cannot open include file: 'libxml/xmlversion.h': No su ch file or directory

D:\software\Python27\lib\distutils\dist.py:267: UserWarning: Unknown distributio n option: 'bugtrack_url'

warnings.warn(msg)

error: command '"D:\software\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2

---------------------------------------- Rolling back uninstall of lxml Cleaning up... Command D:\software\Python27\python.exe -c "import setuptools;file='c:\user s\x\appdata\local\temp\pip_build_x\lxml\setup.py';exec(compile(open(_ file_).read().replace('\r\n', '\n'), file, 'exec'))" install --record c:\u sers\x\appdata\local\temp\pip-pyyuss-record\install-record.txt --single-versio n-externally-managed failed with error code 1 in c:\users\x\appdata\local\temp \pip_build_x\lxml Traceback (most recent call last): File "D:\software\Python27\Scripts\pip-script.py", line 9, in load_entry_point('pip==1.4.1', 'console_scripts', 'pip')() File "D:\software\Python27\lib\site-packages\pip__init__.py", line 148, in ma in return command.main(args[1:], options) File "D:\software\Python27\lib\site-packages\pip\basecommand.py", line 169, in main text = '\n'.join(complete_log) UnicodeDecodeError: 'ascii' codec can't decode byte 0xa9 in position 72: ordinal not in range(128)

Answer

Fernando Macedo picture Fernando Macedo · May 25, 2014

If you have a compiler installed (tested with VS C++ 2008 Express), you can simply run:

set STATICBUILD=true && pip install lxml

As pointed out on documentation, setting STATICBUILD will tell to lxml's installer to automatically download all its binary dependencies before build.

These lxml binary dependencies, that should be present when installing from source, will be downloaded and build together by the installer:

  • libxslt
  • iconv
  • zlib
  • libxml2

Bonus: It also works inside a virtualenv.