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
(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
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
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
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.