Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Erstellen eines Site-Policy-Produkts

Erstellen eines Site-Policy-Produkts

erstellt von Veit Schiele zuletzt verändert: 27.09.2009 15:12 © Veit Schiele 2007–2009

Zum Erstellen eines Python-Eggs, das ein Zope2-Produkt enthält, verwenden wir das ZopeSkel-Template plone:

$ cd src
$ paster create -t plone

Enter project name: vs.policy
Variables:
  egg:      vs.policy
  package:  vspolicy
  project:  vs.policy
Enter namespace_package (Namespace package (like plone)) ['plone']: vs
Enter package (The package contained namespace package (like example)) ['example']: policy
Enter zope2product (Are you creating a Zope 2 Product?) [False]: True
Enter version (Version) ['0.1']:
Enter description (One-line description of the package) ['']: vsPolicy
Enter long_description (Multi-line description (in reST)) ['']: Policy product for www.veit-schiele.de
…
Enter zip_safe (True/False: if the package can be distributed as a .zip file) [False]: False

Nachdem das Python-Egg im src-Verzeichnis erstellt worden ist, sollten wir es noch in der buildout.cfg-Datei eintragen:

[buildout]
…
eggs =
    vs.policy
develop =
    src/vs.policy
…
[instance]
zcml =
    vs.policy

Mit der Angabe für zcml erzeugt Buildout in der Instance einen sog. zcml-slug. In unserem Fall wird also im Verzeichnis parts/instance/etc/package-includes/ die Datei 001-vs.policy-configure.zcml erzeugt mit folgendem Einzeiler:

<include package="vs.policy" file="configure.zcml" />

Damit dies geschieht, wird buildout erneut aufgerufen:

$ ./bin/buildout -No

Um zu Testen, ob das Python-Egg in der Instanz zur Verfügung steht, rufen wir den Python-Interpreter zopepy auf:

$ ./bin/zopepy
>>> from vs import policy

Da kein Fehler für den Import ausgegeben wurde, scheint das Egg geladen zu werden, und der Python-Interpreter kann mit Strg-D (unter Windows Strg-Z) wieder verlassen werden.

Alternativ kann auch die Instanz gestartet werden mit ./bin/instance; anschließend sollten sich im Zope Management Interface → Control_Panel → Products das vs.policy-Produkt finden.

Artikelaktionen