Direkt zum Inhalt Direkt zur Navigation

Veit Schiele Kommunikationsdesign

libxml2-python

Autor: Veit Schiele
Zuletzt verändert: 01.05.2010 20:00
Rechte: © Veit Schiele 2006–2010

Python bindings und wrappers für die libxml2- und libxslt-Bibliotheken.

Anforderungen

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.