Installing Zope
===============
This document describes installing Zope with
`zc.buildout `_
(the **recommended** method) or via ``pip``.
.. contents::
:local:
Prerequisites
-------------
In order to install Zope, you must have the following prerequisites
available:
- A supported version of Python, including the development support if
installed from system-level packages. Supported versions include
**3.7** up to **3.11**.
- Zope needs the Python ``zlib`` module to be importable. If you are
building your own Python from source, please be sure that you have the
headers installed which correspond to your system's ``zlib``.
- A C compiler capable of building extension modules for your Python
(gcc recommended).
- If you are using a Python interpreter shipping with your Linux distribution,
you need to install the matching Python development package. As example, for
Python 3 on Ubuntu 18.04, you have to type the following:
.. code-block:: console
$ sudo apt-get install python3-dev
Installing Zope with ``zc.buildout``
------------------------------------
`zc.buildout `_ is a powerful
tool for creating repeatable builds of a given software configuration
and environment. The Zope developers use ``zc.buildout`` to develop
Zope itself, as well as the underlying packages it uses. **This is the
recommended way of installing Zope**.
Installing the Zope software using ``zc.buildout`` involves the following
steps:
- Download and uncompress the Zope source distribution from `PyPI`__ if you
are using the built-in standard buildout configuration
__ https://pypi.org/project/Zope/
- Create a virtual environment
- Install ``zc.buildout`` into the virtual environment
- Run the buildout
The following examples are from Linux and use Zope version 5.0. Just replace
that version number with your desired version.
Built-in standard buildout configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: console
$ wget https://pypi.org/packages/source/Z/Zope/Zope-5.0.tar.gz
$ tar xfvz Zope-5.0.tar.gz
$ cd Zope-5.0
$ python3.7 -m venv .
$ bin/pip install -U pip wheel zc.buildout
$ bin/buildout
Custom buildout configurations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Instead of using the buildout configuration shipping with Zope itself, you
can also start with your own buildout configuration file.
The installation with a custom buildout configuration does not require you
to download Zope first:
.. code-block:: console
$ python3.7 -m venv zope
$ cd zope
$ bin/pip install -U pip wheel zc.buildout
$ bin/buildout
Minimum configuration
+++++++++++++++++++++
Here's a minimum ``buildout.cfg`` configuration example:
.. code-block:: ini
[buildout]
extends =
https://zopefoundation.github.io/Zope/releases/5.0/versions-prod.cfg
parts =
zopescripts
[zopescripts]
recipe = zc.recipe.egg
interpreter = zopepy
eggs =
Zope
Paste
Using ``plone.recipe.zope2instance``
++++++++++++++++++++++++++++++++++++
To make your life a lot easier, you can use ``plone.recipe.zope2instance``
to automate a lot of the configuration tasks from the following document,
:doc:`operation`. ``plone.recipe.zope2instance`` has a myriad configuration
options, please see the
`PyPI page `_.
.. code-block:: ini
[buildout]
extends =
https://zopefoundation.github.io/Zope/releases/5.0/versions-prod.cfg
parts =
zopeinstance
[zopeinstance]
recipe = plone.recipe.zope2instance
eggs =
user = admin:adminpassword
http-address = 8080
zodb-temporary-storage = off
One feature this kind of installation offers is the easy integration of WSGI
servers other than the built-in ``waitress``. You can specify a file path to a
WSGI configuration file to use when starting the Zope instance. This works for
WSGI servers that offer a PasteDeply-compatible entry point, like ``gunicorn``.
You will need to create the ``.ini`` file yourself, and don't forget to
include the WSGI server software egg in the ``eggs`` specification:
.. code-block:: ini
[zopeinstance]
recipe = plone.recipe.zope2instance
eggs =
gunicorn
user = admin:adminpassword
http-address = 8080
zodb-temporary-storage = off
wsgi = /path/to/zope.ini
Installing Zope with ``pip``
----------------------------
Installing the Zope software using ``pip`` involves the following
steps:
- Create a virtual environment (There is no need to activate it.)
- Install Zope and its dependencies
Example steps on Linux. Replace the version number "5.0" with the latest
version you find on https://zopefoundation.github.io/Zope/:
.. code-block:: console
$ python3.7 -m venv zope
$ cd zope
$ bin/pip install -U pip wheel
$ bin/pip install Zope[wsgi]==5.0 \
-c https://zopefoundation.github.io/Zope/releases/5.0/constraints.txt
You can also install Zope using a single requirements file. **Note that this
installation method might install packages that are not actually needed** (i. e.
more than are listed in the ``install_requires`` section of ``setup.py``):
.. code-block:: console
$ bin/pip install \
-r https://zopefoundation.github.io/Zope/releases/5.0/requirements-full.txt
Building the documentation with ``Sphinx``
------------------------------------------
If you have used ``zc.buildout`` for installation, you can build the HTML
documentation locally:
.. code-block:: console
$ bin/make-docs