lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries. It
provides safe and convenient access to these libraries using the ElementTree
It extends the ElementTree API significantly to offer support for XPath,
RelaxNG, XML Schema, XSLT, C14N and much more.
To contact the project, go to the project home page or see our bug tracker at
In case you want to use the current in-development version of lxml, you can
get it from the subversion repository at http://codespeak.net/svn/lxml/trunk . Note that this requires Cython to build the sources. Similarly, running easy_install lxml==dev will install lxml from
- Crash in newer libxml2 versions when moving elements between
documents that had attributes on replaced XInclude nodes.
- XMLID() function was missing the optional parser and
- Searching for wildcard tags in iterparse() was broken in Py3.
- lxml.html.open_in_browser() didn’t work in Python 3 due to the
use of os.tempnam. It now takes an optional ‘encoding’ parameter.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.