libxml2-python
Python bindings und wrappers für die libxml2- und libxslt-Bibliotheken.
Anforderungen
libxml 2.6.21 oder später,
s.a. http://xmlsoft.org/downloads.html
Soll XPath verwendet werden, kann nicht libxml2 2.6.27 verwendet werden und es wird libxml2 2.7.2 oder später empfohlen.
libxslt 1.1.15 oder später,
Installation
Unter Linux lässt sich libxml2-python einfach mit easy_install installieren sofern libxml2 und libxslt einschließlich ihrer dev-Packages installiert wurden, also für Debian und Ubuntu z.B. libxml2-dev und libxslt1-dev.
Unter Windows ist zu beachten, dass nicht für alle Versionen Windows-kompatible Installationsdateien erstellt werden. Hier sollte ggf. im Python Package Index selbst nach der letzten Version geschaut werden. Anschließend können Sie diese Version beim Aufruf von easy_install einfach mitangeben:
easy_install lxml==2.2.6
Unter Mac OS X sollte eine source-Distribution erstellt werden, die zugleich libxml2 und libxslt erstellt:
STATIC_DEPS=true easy_install lxml
Searching for lxml Reading http://pypi.python.org/simple/lxml/ Reading http://codespeak.net/lxml Best match: lxml 2.2.6 Downloading http://codespeak.net/lxml/lxml-2.2.6.tgz Processing lxml-2.2.6.tgz Running lxml-2.2.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-xSmRWr/lxml-2.2.6/egg-dist-tmp-orSKZh Building lxml version 2.2.6. NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available. Using build configuration of libxslt 1.1.24 Building against libxml2/libxslt in the following directory: /usr/lib Adding lxml 2.2.6 to easy-install.pth file Installed /opt/python/2.4.6/lib/python2.4/site-packages/lxml-2.2.6-py2.4-linux-i686.egg Processing dependencies for lxml Finished processing dependencies for lxml
Installation via Buildout
Mit Buildout lassen sich sowohl die libxml2-Bibliotheken als auch die Python-Bindings installieren. Hierzu können Sie in Ihrem Buildout-Projekt die Datei lxml.cfg mit folgendem Inhalt anlegen:
[lxml]
parts =
staticlxml
pylxml
[pylxml]
recipe=zc.recipe.egg
interpreter=pylxml
eggs=
lxml
[staticlxml]
recipe = z3c.recipe.staticlxml
egg = lxml
Anschließend können Sie diese Konfigurationsdatei in Ihre buildout.cfg einbinden mit:
[buildout]
extends =
lxml.cfg
parts =
${lxml:parts}
Nachdem Buildout durchlaufen wurde, können Sie überprüfen, ob libxml2 zur Verfügung steht mit:
$ ./bin/zopepy >>> import lxml >>>
Wenn der Import ohne Fehlermeldung funktioniert, sollte libxml2 in Python verwendet werden können.