Sie sind hier: Startseite / Dokumentation und Support / Tutorials / Veröffentlichung eines Packages auf PyPI

Veröffentlichung eines Packages auf PyPI

Packages bzw. Eggs können in den Cheese Shop, auch bekannt als PyPI (Python Package Index) hochgeladen werden. Wie das funktioniert ist hier beschrieben.

 

Vorbereitungen

Um Pakete veröffentlichen zu können benötigt man einen Account. Wie man diesen erstellt und wo die Zugangsdaten hinterlegt werden müssen wird hier erklärt.

Account erstellen

Der Cheese Shop listet Python Packages (auch bekannt als Eggs). Man kann sich unter folgender URL registrieren und selbst Packages hochladen und damit anderen Benutzern zur Verfügung stellen: http://pypi.python.org/pypi?%3Aaction=register_form

Zugangsdaten hinterlegen

Für den Upload werden Zugangsdaten genutzt. Bei Linux können diese Zugangsdaten im Home-Verzeichnis des Users in einer Datei .pypirc hinterlegt werden. Die Datei muss folgendermaßen aussehen:

[server-login]
username: <username>
password: <password>

Weitere Informationen dazu:

Paket erstellen

Beim erstellen eines Packages werden wesentliche Angaben gemacht.

Paket erstellen

Mit paster kann man Python Packages und damit auch Plone Add-On Products erstellen. Wir wechseln in das src-Verzeichnis unserer Buildout-Umgebung. Der Befehl zum erstellen lautet:

paster create -t plone package.dummy

Die Angaben die dort gemacht werden landen in den Konfigurations-Dateien des Packages und werden später ausgelesen um Informationen über das Paket anzuzeigen.

Angaben ergänzen

Damit das Package "aktiviert" wird binden wir es in unser Buildout ein:

[buildout]
...
eggs =
    dummy.package
...
develop =
    src/dummy.package

[instance]
...
zcml =
    dummy.package

Jetzt sollte buildout einmal ausgeführt werden. Das führt dazu dass das Package initialisiert wird und Package-Informationen zusammengestellt werden:

./bin/buildout -o

Package hochladen

Wenn man den Weg über die Console geht braucht es genau eine Zeile um das lokal entwickelte Paket hochuladen.

Package veröffentlichen

Wir wechseln in das src-Verzeichnis und dort in das Verzeichnis unseres neu erstellten Packages.

Dort rufen wir folgenden Befehl auf um das Paket hochzuladen:

python2.4 setup.py egg_info sdist bdist_egg register upload

Hinweise:

  • sdist - erstellt den Source Tarbal der als .tar.gz heruntergeladen werden kann
  • bdist_egg - erstellt das Egg selbst
  • register - verwendet die Zusatzinformationen aus dem Package auf der Seite

Finetuning

Nach der erstellung ist das Package noch als Development-Egg gekennzeichnet und weist ggf. eine SVN-Revisionsnummer auf. Wie man diese entfernt und das Package für die Version 1.0 vorbereitet ist hier beschrieben.

Die Informationen die jetzt im Cheese Shop zu sehen sind werden im wesentlichen aus der README.txt (im Root Verzeichnis des Packages) und der HISTORY.txt (im docs-Verzeichnis) gewonnen. Es bietet sich also an diese Dateien entsprechend der Entwicklung anzupassen.

Weitere Anpassungen können in der setup.cfg gemacht werden:

[egg_info]
tag_build =
tag_svn_revision = 0

Die Anpassungen sorgen dafür dass die dev-Kennzeichnung und ggf. die SVN-Revision aus der Bezeichnung des Packages verschwinden.