Executing Step 1 will start a wizard to help with the creation of the buildout.cfg
, we need. For each of the following options, provide these values:
A new folder named pox
(the project name we used in the first option) with a basic directory structure and two very important files—bootstrap.py
and buildout.cfg
— will have been created.
In Step 2, we run the bootstrap
process to complete the directory structure and generate the executable buildout
file.
Let’s see what buildout.cfg
looks like after Step 3, where we added PIL
in the eggs
parameter:
This is a four-part buildout. Each part will be run consecutively.
Egg version numbers will be fixed (or pinned) to the ones listed in the URL above. Note that the URL is set according to the release number you have chosen when you ran the paster
command before.
Downloaded and installed eggs should be fetched from these package index servers.
We will start using the eggs
and develop
parameters in the next chapter as we begin adding packages to our Zope instance. Meanwhile, we will need Python Imaging Library (PIL).
A recipe for Zope 2 installation:
A special recipe to download and install old-style Zope products (not released as eggs):
These are several configuration settings for the Zope instance that will be created during the buildout
process.
zopepy
is a Python interpreter with a sys.path
variable full of the downloaded eggs and packages available at the instance's /lib/python
folder. This is particularly useful to check if every package is available as expected.
The last step will take longer to execute than the previous steps, as it will download all the eggs listed in the buildout.cfg
file above and all their dependencies (at the time of writing, Plone 3.3.4 has 74 direct dependencies).
This buildout executes the four parts explicitly mentioned in the parts
definition at the top of the file:
[zope2]
: Its plone.recipe.zope2install
recipe downloads and installs the Zope 2 version mentioned in ${versions:zope2-url}
. You can find this parameter at http://dist.plone.org/release/3.3.4/versions.cfg, the URL of the extends
parameter.
[productdistros]
: It executes with its plone.recipe.distros
recipe. In our example, we don’t have any urls
listed, so it won’t process anything here.
Note
Note that there are very few old-style Zope products that are really worth installing in a modern instance. Being old-style means being unmaintained, so use them carefully.
[instance]
: It uses a plone.recipe.zope2instance
recipe to install a Zope instance. We can see here most of the options we set when we ran the paster
command before.
[zopepy]
: Using zc.recipe.egg
will create a Python interpreter
named zopepy
with all the eggs
found in the instance
section (check ${instance:eggs}
) in the sys.path
variable.