Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge
Anmelden
Sektionen
Sie sind hier: Startseite Entwicklungsumgebung

Installation

Konzepte

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:

  1. Installation von Python.

    1. 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
      

      Falls Sie die SSL-Bibliotheken benötigen, z.B. zum Verschicken von Mails mit TLS, sollten Sie auf Debian- und Ubuntu-Systemen das OpenSSL-Paket installieren:

      $ sudo apt-get install libssl-dev
      

      Mir der GNU Readline-Bibliothek können Sie im Python-Prompt die zuletzt eingegebenen Befehle erneut aufrufen:

      $ sudo apt-get install libreadline6-dev
      

      Für die Indizierung von Word- und PDF-Dokumenten werden darüberhinaus noch die folgenden Pakete benötigt:

      $ sudo apt-get install wv poppler-utils
      
    2. Erstellen und Installieren

      Anmerkung: Im Folgenden wird Python 2.6 für Plone 4 installiert. Für Plone 3 benötigen Sie hingegen weiterhin Python 2.4. Die Installationsschritte sind jedoch weiterhin dieselben sodass Sie einfach 2.6 durch 2.4 ersetzen können.

      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.6.7/Python-2.6.7.tgz
      # tar -xvzf Python-2.6.7.tgz
      

      Installieren Sie das Python-2.6.7-Paket. Auf Ubuntu-Systemen kann hierfür eine explizit gesetzte Umgebungsvariable LDFLAGS erforderlich sein, damit die zlib von Pythons setup.py gefunden und verwendet wird:

      # cd Python-2.6.7
      # ./configure --prefix=/opt/python/2.6.7
      
      --prefix

      Python-Installationspfad. Ohne Angabe wird Python in /usr/local erstellt.

      Anschließend fahren Sie mit der Installation fort:

      # make
      # make install
      
  2. 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.6.7/bin:$PATH
    

    Danach kann die Konfiguration neu eingelesen werden mit:

    $ source ~/.bashrc
    
  3. 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.6.7/Extensions
    # cd /opt/python/2.6.7/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.6.7/lib/python2.6/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.21.2
    

    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
    

Mac OS X

  1. Installieren der OSX development tools (XCode).

  2. Installieren von Macports.

  3. Installieren der folgenden Abhängigkeiten:

    $ sudo port install python26 py26-pil py26-distribute wget
    $ easy_install ZopeSkel
    
  4. Um bootstrap.py aufzurufen, sollte folgender Befehl verwendet werden um zu gewährleisten, dass der Python-Interpreter von Macports verwendet wird:

    $ python2.6 bootstrap.py
    

Weitere Informationen

Buildout hinter einem Proxy

Häufig kann Buildout nicht direkt auf die Quellen zugreifen um Python Eggs o.ä.herunterzuladen. In diesem Fall sollte der Proxy zunächst als Environment-Variable z.B. in der ~/.bashrc-Datei angegeben werden:

export http_proxy = http://localhost:8123/
export https_proxy = http://localhost:8123/

Alternativ kann auch über einen ssh-Tunnel auf den entfernten Server zugegriffen werden:

$ ssh -L 8123:localhost:8123 yourserver.com
Setzen des LD_LIBRARY_PATH

LD_LIBRARY_PATH ist eine Unix-Environment-Variable, die angibt, aus welchem Verzeichnis dynamisch verlinkte Bibliotheken (*.so-Dateien) geladen werden sollen. Falls die systemweit verfügbaren Bibliotheken überschrieben werden sollen, kann dies mit environment-vars aus dem zope2instance-Rezept geschehen:

[instance]
…
# Use statically compiled libxml2
environment-vars =
    LD_LIBRARY_PATH ${buildout:directory}/parts/lxml/libxml2/lib:${buildout:directory}/parts/lxml/libxslt/lib
Artikelaktionen