Skip to main content

A recipe to build lxml

Project description

This recipe automates the installation of the lxml python package and, additionally, builds it statically against dependent libraries like libxml2, libxlst.

Detailed Documentation

Supported options

The recipe supports the following options:

egg

Set to the desired lxml egg, e.g. lxml or lxml==2.1.2

libxslt-url, libxml2-url

The URL to download the source tarball of these libraries from. Currently defaults to:

http://dist.repoze.org/lemonade/dev/cmmi/libxslt-1.1.24.tar.gz
http://dist.repoze.org/lemonade/dev/cmmi/libxml2-2.6.32.tar.gz
build-libxslt, build-libxml2

Set to true (default) if these should be build, false otherwise. Needes to be true for a static build.

static-build

true or false. On OS X this defaults to true.

xml2-location

Needed if libxml2 is not built.

xslt-location

Needed if libxslt is not built.

xslt-config

Path to the xslt-config binary. Not needed if build-libxslt is set to true.

xml2-config

Path to the xml2-config binary. Not needed if build-libxml2 is set to true.

force

Set to true to force rebuilding libraries every time.

Example usage

This is an example buildout:

[buildout]
parts =
   lxml
   pylxml
develop = .

log-level = DEBUG

download-directory = downloads
download-cache = downloads

versions=versions

[versions]
lxml = 2.1.3


[pylxml]
recipe=zc.recipe.egg
interpreter=pylxml
eggs=
    lxml

[lxml]
recipe = z3c.recipe.staticlxml
egg = lxml

This will build a static version of the lxml egg, that is, it won’t have any dependencies on libxml2 and libxslt.

The egg is installed in your buildout’s egg directory (it is not installed as a development egg). If you have a global eggs-directory configured in your ~/.buildout/default.cfg, the static lxml egg is thus placed in that global egg directory.

If you specified a specific version for the lxml egg, the egg directory is checked for an existing lxml egg. If found, it is used as-is. Specifying force = true of course means that this check isn’t performed.

Contributors

Stefan Eletzhofer, Author Reinout van Rees

Change history

trunk

0.5 (2009-03-16)

  • The recipe checks for an existing egg before doing expensive download/compiles. Previously, the check was implicitly done after compiling libmxl/libxslt. The egg name is printed with a warning to delete it if this isn’t a proper static egg. [reinout]

  • Fixed readme typos. [seletz]

0.4 (2009-02-18)

  • Fix to prevent rebuilding lxml all the time, thus reducing the lxml tax. [seletz]

0.3 (2008-12-01)

  • Only add iconv on darwin. [seletz]

0.2.1 (2008-11-28)

  • Made static-build default to true on OS X [seletz]

  • Made build-libxslt and build-libxml2 default to true [seletz]

  • Document default options [seletz]

0.2 (2008-11-27)

  • Fix Documentation REsT [seletz]

  • Rerelease due to setup.cfg messup [seletz]

0.1 (2008-11-27)

  • Added iconv library, which enables fully static builds. This is actually a bug in lxml’s setup. [seletz]

  • Updated docs, removed junk code [seletz]

  • Added tweaks needed for Mac OS X [seletz]

  • Added basic build steps for liblxml2, libxslt and lxml. [seletz]

  • Created recipe with ZopeSkel [seletz].

Download

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

z3c.recipe.staticlxml-0.5.tar.gz (9.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page