[Python-de] PythonRuntime -- war: Dokumentation zu 2.3 & wxPython im
HTMLHelp-Format
Gerhard Häring
gh at ghaering.de
Sam Aug 2 15:04:10 EDT 2003
Thomas Heller wrote:
> Gerson.Kurz at t-online.de (Gerson Kurz) writes:
>
>
>>Ich habe ein kombiniertes HTMLHelp-File für die Python 2.3 Doku (unter
>>zuhilfenahme von www.orgmf.com.ar/condor/pytstuff.html) + die wxWindows-Doku
>>gebastelt. Download (5 mb):
>>
>>http://p-nand-q.com/python/python-2.3.chm
>>
>>Geht zart mit meinem Downloadkontingent um, bitte.
Mirror: http://ghaering.de/mirror/p-nand-q.com/python-2.3.chm
>>In diesem Zusammenhang ... wer wäre dabei für einen
>>nsis-Python-win32-alles-in-einem-installer (mit 2.3 & debug binaries &
>>win32all & py2exe & wxpython & ggf. noch ebbes)? [...]
Ich wollte was in einer ein bischen anderen Richtung machen:
PythonRuntime
=============
Python-Applikationen auf Plattformen, bei denen nicht zumindest Python
und die großen Python-Libraries im Paketmanagement integriert sind
(.deb/.pkg/.rpm/...) ist nervig. Im Endeffekt sieht das dann so so aus,
dass man für jedes kleine Pyhton-Tool *alles* in den Installer reinpackt.
Die Lösung: PythonRuntime. Ich will nicht versuchen, den Heiligen Gral
des Python-Paketmanagements zu finden, sondern eine Lösung vorerst *nur*
für Windows.
Nach einer Entwicklungs- und Testphase von Python und den Libraries, die
in PythonRuntime reingehören sollen, werden alle Versionsnummern
festgenagelt, z. B.:
Python 2.2.3; PySQLite 0.4.3; wxPython 2.4.1.2; usw.
In einer Version von PythonRuntime, z. B. 1.0, ändern sich die
Komponenten *gar nicht* mehr. Eine neue Version von PythonRuntime könnte
z. B. alle 12 Monate herausgebracht werden.
Das PythonRuntime Basissystem besteht aus einem abgespeckten Python
(kein test/, libs/, .../distutils, usw.) und aus einem minimalen
Paketmanagement.
Das Paketmanagement ist bocksimpel. Es muss folgende Features haben:
- Es gibt für die schlussendlichen Applikationen Abhängigkeitsdateien,
in etwa so aussehen könnten:
Application: MyApp
PythonRuntimeVersion: 1
Requires: wxPython-base
Requires: wxPython-ogl
Requires: PySQLite
Requires: PIL
Anhand dieser Abhängigkeiten werden die Pakete von einem PyhtonRuntime
Mirror runtergeladen und in die PythonRuntime (Version 1 hier) installiert.
Der Pfad zum PythonRuntime-Verzeichnis ist in der Registry hinterlegt.
Die pythonxy.dll, die Bestandteil von PythonRuntime ist so modifiziert,
dass sie im Ernstfall ihre Module aus dem im PythonRuntime Registry-Key
hinterlegten Verzeichnis holt, nicht aus dem PythonCore-irgendwas
Verzeichnis (Begründung: strenge Trennung von Entwicklungs- und
Laufzeit-Umgebung).
- nice to have: minimale Extension, die den Progress beim Downloaden der
Komponenten anzeigt
- nice to have: HTTP-Proxy Fähigkeit für den Downloader
- Ein Template für Applikationen, damit man PyhtonRuntime möglichst
einfach verwenden kann. Z. B. ein NSIS-Template zum Installieren der
PythonRuntime.
Was ich bisher habe ist ziemlich experimentell ;-)
* Den PythonRuntime Installer (mit NSIS erzeugt)
* Einen NSIS-Installer für eine minimales Python-Programm, dass die
PythonRuntime verwendet; PythonRuntime wird hier damit nur installiert,
fals es nicht schon ist.
Was auf alle Fälle noch abgeht:
* das minimale Paketmanagement
Hat irgendjemand Interesse, das mit mir weiterzuentwickeln?
-- Gerhard