[Distutils] namespace packages broken in ubuntu with zc.buildout 1.5?
Marius Gedminas
marius at pov.lt
Thu Apr 12 16:51:04 CEST 2012
On Thu, Apr 12, 2012 at 12:16:22PM +0200, Wichert Akkerman wrote:
> I am running into something very odd on an Ubuntu 11.10 system: it
> looks like namespace packages are entirely broken there.
Interesting. As a data point: I use zc.buildout 1.5.2 on Ubuntu 11.10.
I haven't encountered any namespace issues yet.
> Here is a
> pdb session to demonstrate:
>
> (Pdb) import repoze
> (Pdb) repoze
> <module 'repoze' from '/home/wichert/lib/buildout/eggs/repoze.formapi-0.4.2-py2.7.egg/repoze/__init__.pyc'>
> (Pdb) repoze.__path__
> ['/home/wichert/lib/buildout/eggs/repoze.sphinx.autointerface-0.6.2-py2.7.egg/repoze', '/home/wichert/lib/buildout/eggs/repoze.formapi-0.4.2-py2.7.egg/repoze']
>
> So at this point I can import the repoze namespace packages, which
> is defined by both repoze.sphinx.autointerface and repoze.formapi.
> Now I try to import repoze.sphinx.autointerface:
>
> (Pdb) import repoze.sphinx.autointerface
> *** ImportError: No module named autointerface
>
> That is unexpected since we saw the repoze.sphinx.autointerface egg
> was found earlier. So lets look at repoze.sphinx:
>
> (Pdb) repoze.sphinx
> <module 'repoze.sphinx' from
> '/usr/lib/pymodules/python2.7/sphinx/__init__.pyc'>
Do you have a small sample buildout.cfg so that I could try to reproduce
this? This one worked for me:
$ cat buildout.cfg
[buildout]
parts = wtf
[wtf]
recipe = z3c.recipe.scripts
# recipe = zc.recipe.egg also worked fine
eggs =
Sphinx
repoze.formapi
repoze.sphinx.autointerface
interpreter = python
$ python bootstrap.py
$ bin/python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
>>> import repoze
>>> repoze.__path__
['/home/mg/.buildout/eggs/repoze.formapi-0.5.0-py2.7.egg/repoze', '/home/mg/.buildout/eggs/repoze.sphinx.autointerface-0.6.2-py2.7.egg/repoze']
>>> import repoze.sphinx.autointerface
>>> repoze.sphinx
<module 'repoze.sphinx' from '/home/mg/.buildout/eggs/repoze.sphinx.autointerface-0.6.2-py2.7.egg/repoze/sphinx/__init__.pyc'>
even though I also have sphinx installed into my dist-packages
(/usr/lib/pymodules/python2.7/sphinx/__init__.pyc exists).
> I did not see that coming at all: how can a system sphinx package
> that is not inside the repoze namespace suddenly appear there? This
> is especially odd since buildout hooked me up with a sphinx package
> in the buildout itself:
>
> (Pdb) import sphinx
> <module 'sphinx' from '/home/wichert/lib/buildout/eggs/Sphinx-1.0.1-py2.7.egg/sphinx/__init__.pyc'>
>
> I am not sure who is responsible for this behaviour or how to debug
> this. Does anyone have any useful hints?
Not really. I'm afraid when I encounter buildout issues, I'm in the
"aaargh no time for yak shaving NOW" mode, so I tend to intuitively
twiddle some knobs like 'include-site-packages = false' for 10-15
minutes until it starts working.
Marius Gedminas
--
Hanlon's Razor:
Never attribute to malice that which is adequately explained
by stupidity.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20120412/05fe8ef8/attachment.pgp>
More information about the Distutils-SIG
mailing list