Seite 1 von 1
Programm verteilen
Verfasst: Freitag 17. April 2009, 12:23
von Pekh
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
Verfasst: Freitag 17. April 2009, 12:43
von Sunjy
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).
Verfasst: Freitag 17. April 2009, 12:45
von Birne94
Verfasst: Freitag 17. April 2009, 12:49
von derdon
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]
Verfasst: Freitag 17. April 2009, 13:00
von Pekh
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.
Verfasst: Freitag 17. April 2009, 13:58
von derdon
Wie wäre es mit einer guten README, in der erklärt wird, wie man Python + alle Abhängigkeiten installieren kann?
Verfasst: Freitag 17. April 2009, 14:17
von Pekh
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.
Verfasst: Freitag 17. April 2009, 20:23
von cofi
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.