views:

122

answers:

1

There seem to be more than one way to install eggs into a buildout.

Way 1:

[buildout]
...
eggs = 
     eggname
     othereggname
...

Way 2:

[buildout]
...
parts = eggs

[eggs]
recipe = zc.recipe.egg
eggs = eggname
     = othereggname

Both ways work. ( variation on way 2 would be to install each requirement as a separate part. )

What is the difference between these 2 methods?

For my projects, I'm using buildout with djangorecipe and mr.developer.

+1  A: 

In both cases, the "eggs=" makes those eggs available to that part, which means they're getting installed.

The buildout eggs don't get any additional treatment.

The big difference is that "recipe = zc.recipe.egg" ALSO tries to create scripts for all the eggs defined there. (Scripts meaning the "console_scripts" entry points, not the old distutils "scripts=", btw)

The way I normally work: I use the eggs in [buildout] to list my most important eggs ("myproject"). In the djangorecipe part, I have basically an "eggs = ${buildout:eggs}".

And a [console_scripts] part with the zc.recipe.egg recipe to make clear that I want console scripts out of the eggs there. I put extra tools like pep8 in there.

Reinout van Rees
I think I see the light. Thanks... I am actually reading your docs ( as I type this. I got them from a different question ) Appreciated.
chiggsy