[Zope] Deploying with buildout
Chris McDonough
chrism at plope.com
Tue Aug 28 18:15:59 EDT 2007
On Aug 28, 2007, at 5:55 PM, Ross Patterson wrote:
>
>> Putting these packages in your Zope instance home's "lib/python"
>> directory should get them found before the others. For Products, you
>> can use an additional "products-path" directive in zope.conf and put
>> files in there. I don't know how to tell buildout to do either,
>> though.
>
> But wouldn't that cause problems in this case since zope.app.interface
> is a package in two nested-namespace packages. IOW, wouldn't putting
> zope/app/interface in $INSTANCE_HOME/lib/python mean that it was the
> only package in the zope or zope.app namespace packages?
Gah. Yeah. Sorry. You might get away with creating and installing
a custom zope.app.interface-myversion.egg into your Python's site-
packages dir and using something like:
from pkg_resources import require
require('zope.app.interface = myversion')
... in a script early on or do the equivalent within a .pth file in
your site-packages dir. Even after that, you *might* need to munge
the PYTHONPATH, though, to prevent Zope from finding the one in
SOFTWARE_HOME first. :-(
I find Ian Bicking's virtual_python.py script very useful for trying
things like this out. I usually install both a custom version of
Python and one or more virtual pythons in my automated scripts (using
the --no-site-packages flag to virtual_python.py). This means I can
let distutils/setuptools packages install to site-packages "normally"
without polluting the main Python installation's site-packages and so
I don't need to go through gyrations to munge the PYTHONPATH for them
to be found somewhere else. I think buildout tends to prefer
creating scripts that munge the path.
- C
More information about the Zope
mailing list