Installation
Konzept
- Buildout
- erlaubt, identische Entwicklungsumgebungen einfach aufzusetzen. Hierzu nutzt buildout die Fähigkeit der setuptools, automatisch Abhängigkeiten aufzulösen und Aktualisierungen durchzuführen (s.a.: Jim Fulton: Buildout Tutorial).
- Python Eggs
- sind ein Deploymentformat für Python-Packages. Sie enthalten ein setup.py-Skript mit Metainformationen (Lizenz, Abhängigkeiten, etc.) Mit der Python-Bibliothek Setuptools können solche Abhängigkeiten automatisch nachgeladen werden, wobei in Eggs spezifische Versionen angegeben werden können.
- Python Package Index PyPI (aka Cheese Shop)
- Index mit tausenden von Python-Paketen. Setuptools, easy_install und buildout nutzen diesen Index, um Eggs automatisch zu installieren.
- EasyInstall
- Python-Modul mit dem der Python Package Index durchsucht werden kann und das die Pakete in die globale Python-Umgebung installiert. Neben Buildout werden wir nur noch ZopeSkel mit EasyInstall installieren, alle weiteren Eggs werden von Buildout in das lokale Buildout-Projekt heruntergeladen, unter anderem um Versionskonflikte zu vermeiden.
Installation
Bevor zc.buildout installiert werden kann, sind folgende Schritte erforderlich:
Installation von Python 2.4.
Anforderungen
- bash oder eine andere Shell
- ein C- und C++-Compiler
- GNU make
- Zope setzt das Python-zlib-Modul voraus, das Python beim Kompilieren erstellt sofern zlib.h in /usr/include installiert ist.
Für diese Anforderungen müssten auf Debian- und Ubuntu-Systemen folgende Pakete installiert werden:
$ sudo apt-get install build-essential zlib1g-dev
- Erstellen und Installieren
Gehen Sie in das Verzeichnis, in dem Sie die aktuelle Python-Version installieren möchten, z.B. in /opt/. Anschließend laden Sie das Python-Paket herunter und entpacken es:
# wget http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tgz # tar -xvzf Python-2.4.6.tgz
Installieren Sie das Python-2.4.6-Paket:
# cd Python-2.4.6 # ./configure --prefix=/opt/python/2.4.6
- --prefix
Python-Installationspfad. Ohne Angabe wird Python in /usr/local erstellt.
Die Installation kann überprüft werden mit make test. Dabei sollte test_zlib kommentarlos durchlaufen werden.
Anschließend fahren Sie mit der Installation fort:
# make # make install
Dieser Python-Interpreter kann nun in PATH eingetragen werden. Hierzu wird folgendes in die ~/.bashrc (oder auf dem Mac in ~/.bash_profile) eingetragen:
export PATH=/opt/python/2.4.6/bin:$PATH
Danach kann die Konfiguration neu eingelesen werden mit:
$ source ~/.bashrc
Um ein Buildout-Projekt zu erstellen, wird darüberhinaus noch PasteScript benötigt, ein Werkzeug zum Erstellen eines Projektgerüsts oder eines Python-Pakets aus bestimmten Vorlagen. Für die Zope- und Plone-Entwicklung stellt ZopeSkel solche Vorlagen bereit. PasteScript, ZopeSkel und Buildout lassen sich einfach mit easy_install installieren:
# mkdir /opt/python/2.4.6/Extensions # cd /opt/python/2.4.6/Extensions # wget http://peak.telecommunity.com/dist/ez_setup.py # python ez_setup.py # easy_install ZopeSkel # easy_install zc.buildout
Welche Versionen dieser Python-Pakete mit easy_install installiert wurde, steht in der Datei /opt/python/2.4.6/lib/python2.4/site-packages/easy-install.pth.
Wollen Sie zu einem späteren Zeitpunkt eines dieser Python-Pakete aktualisieren, so können Sie dies mit der Option -U, also z.B.:
# easy_install -U ZopeSkel
Sie können auch spezifische Versionen angeben, z.B.:
# easy_install ZopeSkel==2.9
Anmerkung: Verwenden Sie z.B. Subversion 1.5 zusammen mit Buildout und erhalten folgende Fehlermeldung:
NameError: global name 'log' is not defined
dann benötigen Sie mindestens die dev06-Version der setuptools. Dies erhalten Sie mit:
# easy_install setuptools==dev06
Falls Sie folgende Fehlermeldung bekommen:
Running Markdown-2.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Ne8fpa/Markdown-2.0.1/egg-dist-tmp-HjHi02 error: Setup script exited with error: Setup script exited with error: Setup script exited with error: Setup script exited with interrupted
dann können Sie zc.buildout auch ohne Abhängigkeiten installieren:
# easy_install -N zc.buildout

