[Distutils] Buildout & develop-eggs troubles

Jim Fulton jim at zope.com
Sat Mar 31 22:12:10 CEST 2012

On Sat, Mar 31, 2012 at 2:48 PM, Alessandro Dentella <sandro at e-den.it> wrote:
> Hi,
> I'm trying buildout but I'm having a hard time trying to understand the
> logic of develop-egg.
> I tested both mr.developer recepy and gp.csvdevelop and I stumbled on the
> same problem, so I guess I'm misunderstanding something.
> I want to add a development repository named jumbo-core that contains
> several 1^ level packages (and a correct setup.py), one of which is 'jumbo',
> I get to the point that:

I don't understand alot of what you said above, but hopefully, I can get by. :)

>  1. source is added to ./dev/jumbo-core
>  2. an egg-link is added to develop-eggs/jumbo-core.egg-link pointing to
>     the correct path where the hg repository is checked out, but that path
>     is not added to the sys.path. My configuration is as follows::
>      [buildout]
>      develop = .
>      parts = python scripts test ipython
>      extensions = gp.vcsdevelop
>      develop-dir = ./dev
>      vcs-extend-develop = hg+${thunder:jumbonew}/jumbo-core#egg=jumbo-core
>      [python]
>      recipe = zc.recipe.egg
>      interpreter = python
>      eggs = lunar
> Adding 'jumbo' to eggs directive raises the error: "Couldn't find index page
> for 'jumbo' (maybe misspelled?)"
> If I add dev/jumbo-core to develop option I get the message::
>  Skipping 'hg+/misc/src/hg/thunder/jumbo-new/jumbo-core#egg=jumbo-core'. Package is already in the develop option
> but dev/jumbo-core is not added to the sys.path.
> Any hint is appreciated.

The develop option names a (or many) setup.py file.
You can also, as a common shortcut, name a directory
containing setup.py file.  The develop option invokes
the setup.py file to create a develop egg.

The setup.py file defines a product name.  From the
name of the egg link you mention, I'm guessing that
the setup.py file in the current directory ('.') sets the
project name to 'jumbo-core'.

The egg recipe builds a script based on a list
of requirements as listed in the eggs option.
(Yeah, 'requirements' would have been a better
name...)  The requirements are typically just
project names, although they can also contain
version specifications.

If, as I suspect, the project name is 'jumbo-core', rather
than 'jumbo', then you need to add jumbo-core to your
eggs option (on a separate line).


Jim Fulton

More information about the Distutils-SIG mailing list