2008-10-16 5 views
5

J'écris une application Web en Python, destinée aux enseignants et aux élèves dans une salle de classe. Il fonctionnera à partir d'un site Web hébergé, mais je souhaite également que les utilisateurs puissent télécharger une application autonome qu'ils peuvent installer localement s'ils veulent plus de performances ou s'ils n'auront tout simplement pas de connexion Internet disponible en classe.Distribution d'une application Web Python autonome à des utilisateurs non techniques

Les utilisateurs ne pourront pas gérer les instructions comme "installez Python en premier, puis installez les dépendances, téléchargez l'archive .tar.gz et tapez ces commandes dans la ligne de commande ...". Je dois être capable de créer un programme d'installation de type tout-en-un qui peut potentiellement installer Python, dépendances (Python-LDAP), du code Python, et enregistrer un serveur web basé sur Python en tant que service Windows.

J'ai jeté un coup d'œil aux questions précédentes, mais aucune ne semble vraiment pertinente. Je ne suis pas préoccupé par la sécurité du code source (mon application sera open source, je vais vendre du contenu pour aller avec), j'ai juste besoin d'utilisateurs Windows non-techniques pour pouvoir télécharger et utiliser mon application sans tracas . Mes pensées actuelles sont d'utiliser NSIS pour créer un programme d'installation qui inclut Python et Python-LDAP en tant que MSI, puis enregistre mon propre serveur web basé sur Python en tant que service Windows et met un raccourci dans le menu Démarrer/sur le bureau reliant à http://localhost. Est-ce faisable avec NSIS - NSIS peut-il vérifier les copies actuellement installées de Python, par exemple? Existe-t-il une meilleure façon de procéder? Existe-t-il un cadre pratique qui me permet de placer mon code dans un dossier et de le regrouper pour en faire un installateur?

Répondre

4

Utilisation NSIS est grande (je l'utilise aussi) mais je suggère d'utiliser un « packager » comme pyinstaller (my fav personnelle, alternatives bb_freeze, py2exe) pour créer un exe avant l'utilisation de NSIS

Le principal avantage vous obtenez en faisant ceci est; Votre téléchargement est plus petit car vous ne compressez pas la totalité de la librairie Python Standard Lib et d'autres choses dont votre application n'a pas besoin et vous obtenez un fichier exe pour démarrer!

+0

Pensez plus loin, je vais avoir une fenêtre frontale GUI simple qui dit "Serveur en cours d'exécution - cliquez ici pour fermer" pour une utilisation de bureau simple et avoir un installateur différent pour les utilisateurs plus techniques. Emballage cette version serait probablement une bonne idée, merci pour la suggestion. –

0

Vous pouvez essayer le Bitnami Stack for Django qui inclut Apache, MySQL, Python, etc. dans un programme d'installation tout-en-un. Il est gratuit/open source

Questions connexes