[Python-de] Python-Programme installieren

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Don Aug 31 10:09:13 CEST 2006


moin

Bisher hab ich meine Programme für die Installation beim Kunden immer
mit py2exe gepackt und war damit soweit auch zufrieden. Derzeit hab ich
nur wieder mal das Problem, dass das compilieren zwar funktioniert aber
die exe nen Fehler verursacht. Und bevor ich da den Fehler such, dachte
ich mir ob man das ganze nicht besser lösen könnte.

Meine Idee ist, eine Python-Umgebung automatisiert einzurichten und dann
das eigentliche Programm zu installieren. Natürlich möchte ich die
ganzen Python-Pakete nicht neuzusammenpacken, sondern die mit Ihren
jeweiligen Setups sich installieren lassen. (Ich weiss dämlicher Satzbau,
aber hoffentlich wird gleich klar, was ich will.)

Ich stell mir das in etwa so vor:

1. gewünschte Python-Major-Version vorhanden?
   - Ja: gegebenenfalls auf Python-Minor-Version aktualisieren.
   - Nein: Installationsverzeichnis abfragen und installieren
2. überprüfen, ob von den einzelnen Paketen jeweils die aktuelle Version
   vorhanden ist und gegebenenfalls installieren / aktualisieren
   - das sollte möglichst automatisch ablaufen, also nicht das der
     Nutzer jedes Paket einzeln abnicken muss
3. Programm in eigenes Verzeichniss installieren (also nicht nach
   site-packages, meine Programme sind keine Pakete im eigentlichen
   Sinne)
   - als Option nur compilierte Python-Scripte (pyc, pyo, pyd) ins Setup
     packen 

Das hat dann auch gleich den Vorteil, dass auf den Rechnern eine
eigenständige Python-Umgebung installiert ist und das sollte doch
überall so sein *g*

Ich hab mir InnoSetup installiert und wollte eigentlich loslegen. Aber
dann kamen Fragen, ob InnoSetup dafür überhaupt geeignet ist.
Insbesondere das überprüfen der Versionen der Pakete macht mir Sorgen.
Weil dafür müssen ja jeweils kurze Skripte in der zuvor installierten
Python-Umgebung ausgeführt werden.

So meine Frage: Kann man mit InnoSetup eine vollwertige Python-Umgebung
inklusive Paketen installieren, ohne für jedes Paket das Setup
neuschreiben zu müssen? Oder wie löst ihr das?

Meine Zielplatform ist im Moment Windows. Es wär aber trotzdem schön,
wenn man mit der Methode auch Setups für andere Systeme erstellen könnte.


Vielen Dank schonmal für eure Hilfe
cu boesi


PS: Nein ich hab mich mit InnoSetup noch nicht weiter beschäftigt, aber
ich frag erstmal, ob meine Anforderung erfüllt werden.

PPS: Und nein PyInstaller ist auch keine Lösung, weil ich will ja gerade
weg von den exe-Krams...

PPPS: Ein Problem ist mir noch eingefallen - was soll mit
Python-Installationen passieren, die unabhängig von meinen Programmen
installiert wurden und wo vielleicht mit Absicht ältere Paket-Versionen
installiert sind. Also muss es einen Weg geben, "meine" 
Python-Installation zu erkennen.
-- 
A Achkatz'l ofm Baam
des hot a schins Laam
braucht keen Pfenng Gald
un freit sich of dr Walt



More information about the python-de mailing list