Programm verteilen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Hallo,

ich möchte ein Programm an verschiedene Personen weitergeben, oder vielmehr eine Reihe von zusammengehörigen Programmen. Dies sollte in offener Form erfolgen, also keine Singlefile-Exes, sondern schlichte Verzeichnisse und .py Dateien. Hauptgrund dafür ist, daß ich nicht in jedem Teilprogramm einen kompletten Interpreter + komplette Abhängigkeiten verstauen möchte.

Was ich anstrebe, ist ein Installationsprogramm, das das Programm, Python und die benötigten Abhängigkeiten (SQLAlchemy, wxPython, ....) ohne großes Zutun des Anwenders installiert.

Es kann sein, daß von den Abhängigkeiten einige bereits auf dem Rechner existieren - diese sollten dann natürlich nicht angerührt werden.

Wie kann ich das elegant handhaben? Ist dieses Vorgehen überhaupt sinnvoll? Es geht hier um eine Windows-Installation. Unter Linux machen mir die Abhängigkeiten nicht so viel Kopfzerbrechen.

Schönen Dank schon mal

Pekh
Benutzeravatar
Sunjy
User
Beiträge: 31
Registriert: Dienstag 3. März 2009, 19:13
Wohnort: 127.0.0.1
Kontaktdaten:

also ich habe leider keine Antwort auf deinen speziellen Wunsch dass alles installiert wird.
Aber wieso lässt du nicht einfach dein Python Script kompilieren(sinngemäßes aber dennoch falsches Wort wie jemand weiter unten anmerken musste....). du musst dazu keinen eigenen Interpreter schreiben.
Ein Beispiel für nen Kompiler wäre Py2Exe, man benötigt lediglich Microsoft Visual C++ 2008 SP1 Redistributable Package, welches aber auf den meisten Windows Systemen eh schon installiert ist.
Eine Anleitung für Py2Exe findest du hier:
http://www.sunjy.de/py2exe/index.html

Oder wenn du zu faul bist alles per Hand zu machen nutze das Programm unter dem Punkt "Nützliches", da musst du lediglich den Pfad der Dateien und des Pythonverzeichnises angeben und alles weitere geschieht automatisch (Py2exe muss natürlich installiert sein, aber das ist ja kein Problem).
Zuletzt geändert von Sunjy am Freitag 17. April 2009, 13:11, insgesamt 1-mal geändert.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Sunjy hat geschrieben:Aber wieso lässt du nicht einfach dein Python Script kompilieren.
[wiki=FAQ#WoGibtEsEinenPythonCompiler]Weil es (noch) keinen Compiler für Pythoncode gibt.[/wiki]
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Ich habe eine von drei Programmen gemeinsam genutzte Code-Basis in Form einer Bibliothek. Diese Bibliothek und die Programme selbst haben die genannten Abhängigkeiten. Wenn ich jetzt mit PyInstaller & Co arbeite, habe ich (neben meiner Bibliothek) in *jedem* der Programme einen Interpreter + die ganzen Abhängigkeiten. Und das finde ich einfach nicht schön, selbst in Zeiten, in denen Speicherplatz nicht mehr das beherrschende Kriterium ist.

Um es mal zu verdeutlichen: Programme und Bibliothek belegen als reiner Python-Code etwa 1,26 MB. Wende ich jetzt auf alle Teilprogramme pyinstaller an, bin ich bei 26MB. Zu den 1,26 kommen jetzt natürlich noch die zu installierenden Abhängigkeiten und der Python-Interpreter, aber halt nur einmal, und nicht drei Mal. Und wenn ich dann irgendwann auf dem selben Rechner noch ein viertes - fünftes - sechstes Programm mit den selben Abhängigkeiten installieren möchte, brauche ich diese eben nicht noch einmal mit rauszugeben / zu installieren / vorzuhalten.

Insofern vielen Dank für eure gutgemeinten Ratschläge, aber das ist nicht der Weg, den ich beschreiten möchte.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Wie wäre es mit einer guten README, in der erklärt wird, wie man Python + alle Abhängigkeiten installieren kann?
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Die existiert.

Es gibt aber einen Kreis von Leuten, die es als Qualitätsmerkmal einer Software betrachten, wenn sie sich ohne Probleme installieren läßt. Und selbst wenn ich alle benötigten Installer mitgebe, bleibt die Aufgabe, diese in der richtigen Reihenfolge auszuführen. Und so, wie ich diese Personen einschätze, ist ihnen das schon zu viel. Wir reden hier schließlich auch von Windowsnutzern.

Im Moment habe eine Art Batch-Datei und InstallJammer im Auge. Mal schauen, ob ich damit befriedigende Ergebnisse erzielen kann. Für den Anwender wird die Installation dann zwar zu einer Klick-Orgie, aber zumindest ist die Reihenfolge dann festgelegt.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

NSIS wäre eine Alternative: http://nsis.sourceforge.net/Main_Page
Je nachdem ob sich deine Abhängigkeiten auch in der Registry oder an anderen fest definierten Orten verewigen, kannst du auch feststellen, ob du die Abhängigkeiten installieren musst.
Antworten