[Zope3-Users] Buildout and custom python

David Pratt fairwinds at eastlink.ca
Fri Dec 21 11:30:10 EST 2007


Hi Jim. I like this idea. I then makes it trivial to identify impacts of 
using different pythons on your application also since you can just 
change a single line in your buildout. For example, below, just change 
the ${python24:location}/bin/python to whatever python you want to 
evaluate another python including pointing to your system python if you 
wish.

Regards,
David

[python24]
recipe = zc.recipe:cmmi
url = http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz
... more stuff

[python25]
recipe = zc.recipe:cmmi
url = http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz
... more stuff

[active-python]
executable = ${python24:location}/bin/python

[interpreter]
recipe = zc.recipe.egg
interpreter = interpreter
eggs = zc.buildout
        Cheetah==1.0
python = active-python


Jim Fulton wrote:
> 
> On Dec 20, 2007, at 8:58 PM, David Pratt wrote:
> 
>> Right. Thanks for this, there are couple of solutions here and shell 
>> script is a reasonable solution but these methods seems counter to the 
>> simplicity of buildout. I had also seen a rebootstrap package in svn. 
>> I wonder if something similar could not be accomplished this way using 
>> python with a means of producing a callback. I really don't want 
>> anything too messy to accomplish this. Many thanks.
> 
> 
> I'll note that much of the pain here (or at least in the distutils-sig 
> thread)  arises from the fact that the system
> Python and the custom Python have the same version but are built in 
> incompatible ways. :(  Unfortunately, binary egg names don't capture 
> enough information about the ways the eggs were built.
> 
> I'm pondering an option to provide different egg directories for 
> different Python interpreters.  So, maybe something like:
> 
>   [buildout]
>   parts = python24 ...
> 
>   [python24]
>   recipe = zc.recipe.cmmi
>   url = ...
>   executable = ${buildout:parts-directory}/bin/python
>   eggs-directory = ${buildout:directory}/eggs
>   develop-eggs-directory = ${buildout:parts-directory}/develop-eggs
> 
> The idea is that egg-aware recipes would use the egg locations specified 
> in the Python section.  I think this would provide a fairly clean way to 
> build and use a custom Python.
> 
> Of course, it would be nice to have a recipe to build python that set 
> the various variables.
> 
> I can see the benefit of building a custom Python as part of the 
> buildout when you don't want users of a buildout to build a clean Python 
> of their own.  However, if you can require your users to do this, for 
> example, if you are your user, then life is much simpler when a clean 
> Python is managed separately.
> 
> Jim
> 
> -- 
> Jim Fulton
> Zope Corporation
> 
> 


More information about the Zope3-users mailing list