[lxml-dev] specifying lxml as a dependency?
Stefan Behnel
stefan_ml at behnel.de
Mon Nov 10 10:25:33 CET 2008
Chris Withers wrote:
> Ian Bicking wrote:
>> Chris Withers wrote:
>>> I'm just about to start moving Twiddler from ElementTree to lxml and
>>> I'm wondering how to specify lxml as a requirement in Twiddler's
>>> setup.py?
>>>
>>> Do I just do the normal setuptools dance or is there more to it than
>>> that?
>>>
>>> If I specify lxml as a requirement, how do lxml's requirements for
>>> libxml2 and libxlst get satisfied?
>>
>> Just as 'lxml'. On Windows it'll pull the binary egg.
>
> ...and that binary egg includes libxml2 and libxlst?
As it says on PyPI and our web site, yes.
https://codespeak.net/lxml/installation.html#ms-windows
>> Linux binary eggs are too problematic to be worth
>> trying. The system will have to have libxml2/libxslt and the -dev
>> packages (on Linux),
>
> Okay, so the user will have to get libxml2 and libxslt on the system
> "somehow" (ie: os package manager, source install, etc) *before*
> easy_install'ing lxml?
I wouldn't know any distribution that doesn't install libxml2/libxslt by
default, and for most Linux users, installing the -dev packages for a
library is not much harder than eating a warm pie (assuming you like the
taste).
https://codespeak.net/lxml/installation.html#installation
(I just clarified to bit on MS Windows here, haven't uploaded it yet.)
> What happens if they forget and easy_install lxml without libxml2 or
> libxslt?
You will get an error. AFAIR, it's even pretty specific about what's missing.
>> and they could do "STATIC_DEPS=true easy_install
>> Twiddler" to build a static lxml on Macs
>
> Where would "STATIC_DEPS=true easy_install Twiddler" go?
That's the command that will install Twiddler on a Mac once Twiddler has a
dependency on lxml and is uploaded to PyPI.
>> (with the trunk, which itself
>> is a little harder to build, but hopefully there will be an easier
>> release before too long).
>
> Not sure what this means. What's the difference between the trunk and
> the last release on PyPI?
Well, development continues, so there are quite some internal differences.
What's relevant here is that the setup.py in the current trunk knows how
to download and build libxml2 and libxslt, and how to build lxml
statically using the result. That's specifically made (but not only meant)
for Mac users that run into crashes due to conflicting library versions.
Stefan
More information about the lxml-dev
mailing list