[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