2008-10-16 7 views
5

Ich schreibe eine Webanwendung in Python, die von Lehrern und Schülern in einem Klassenzimmer verwendet werden soll. Es wird von einer gehosteten Website laufen, aber ich möchte auch, dass Benutzer in der Lage sind, eine eigenständige Anwendung herunterzuladen, die sie lokal installieren können, wenn sie mehr Leistung wünschen oder einfach keine Internetverbindung im Klassenzimmer verfügbar ist.Verteilen einer eigenständigen webbasierten Python-Anwendung an nicht technische Benutzer

Die Benutzer werden nicht in der Lage sein, Anweisungen zu verwalten wie "zuerst Python installieren, dann Abhängigkeiten installieren, das .tar.gz-Archiv herunterladen und diese Befehle in die Befehlszeile eingeben ...". Ich muss in der Lage sein, ein All-in-One-Installationsprogramm zu erstellen, das möglicherweise Python, Abhängigkeiten (Python-LDAP), Python-Code und einen Python-basierten Webserver als Windows-Dienst registriert.

Ich habe mir die vorherigen Fragen angesehen, aber keine scheint relevant zu sein. Ich bin nicht besorgt über die Sicherheit des Quellcodes (meine Anwendung wird Open Source sein, ich werde Inhalte verkaufen, um damit zu gehen), ich brauche nur nicht-technische Windows-Benutzer, um meine Anwendung ohne viel Aufwand herunterladen und verwenden zu können .

Meine aktuellen Gedanken sind, NSIS zu verwenden, um ein Installationsprogramm zu erstellen, das Python und Python-LDAP als MSIs enthält, dann registriert meinen eigenen einfachen Python-basierten Webserver als Windows-Dienst und eine Verknüpfung im Startmenü/auf der Desktopverknüpfung zu http://localhost. Ist dies mit NSIS machbar - kann NSIS beispielsweise nach aktuell installierten Kopien von Python suchen? Gibt es einen besseren Weg, dies zu tun - gibt es ein praktisches Framework, das mir erlaubt, meinen Code in einen Ordner zu schieben und ihn zu einem Installer zu bündeln?

Antwort

4

Mit NSIS groß ist (ich es verwenden, auch), aber ich würde vorschlagen, einen „Verpacker“ wie pyinstaller (meinen persönlichen fav, Alternativen bb_freeze, py2exe) unter Verwendung eine exe vor der Verwendung NSIS

Der primäre Vorteil zu schaffen Sie bekommen dadurch, dass Sie sind; Ihr Download ist kleiner, da Sie nicht die gesamte Python Standard Lib und zusätzliche Dinge, die Ihre App nicht benötigt, bündeln und Sie erhalten eine EXE-Datei zum Booten!

+0

Weiter denken, ich werde ein einfaches GUI Front-End-Fenster, das sagt "Server läuft - klicken Sie hier, um zu schließen" für einfache Desktop-Nutzung und haben ein anderes Installationsprogramm für mehr technische Benutzer. Die Verpackung dieser Version wäre wahrscheinlich eine gute Idee, danke für den Vorschlag. –

0

Sie können versuchen, die Bitnami Stack for Django, die Apache, MySQL, Python, usw. in einem All-in-One-Installer enthält. Es ist frei/Open Source