Maison  >  Article  >  développement back-end  >  Créez des programmes d'installation exécutables pour Windows avec des scripts Python.

Créez des programmes d'installation exécutables pour Windows avec des scripts Python.

Patricia Arquette
Patricia Arquetteoriginal
2024-10-27 00:44:31628parcourir

Une autre entrée technique.

Contexte rapide, j'ai un dos et un devant (soit en version bêta) en python (flask). J'augmente l'emplacement dans le navigateur.

Le dos se soulève sur le port d'exécution du flacon --port=5001
L'avant se lève sur le port flask run --port=5000

L'application s'exécute dans le navigateur.

http://localhost:5000/

Basique, rien de nouveau jusqu'à présent.

Je dois installer cette application sur une autre machine. Pensée 1, installer Python et toutes les bibliothèques et dépendances et... non.

Voici à nouveau Copilot qui vient à la rescousse. Je vais vous donner des conseils pour installer ces scripts python en tant qu'exécutables pour Windows.

Je recommande des choses intéressantes.

Tout d'abord, ayez l'environnement virtuel opérationnel, les dépendances installées, assurez-vous que tout fonctionne correctement localement et...

Utilisez d'abord pyinstaller pour générer les fichiers .exe de mes applications.

pip installer pyinstaller

Dans chaque répertoire que je lance :

/mon-projet/backend
/mon-projet/frontend

pyinstaller --onefile --name backend app.py

Ici, j'ai dû spécifier le passage des modèles comme paramètres, car cela donnait une erreur jynga2

pyinstaller --onefile --name frontend --add-data
"modèles; modèles" app.py

Exemple :
Crear instaladores ejecutables para windows con scripts en python.

Étape suivante, installez Inno Setup pour générer des installateurs.

web - Configuration Inno

Eh bien, j'ai dû promettre quelque chose aussi pour avoir une base, car je n'avais aucune idée de comment écrire le script ou la syntaxe de la configuration Inno.

[Setup]
AppName=My Awesome APP 
AppVersion=1.0
DefaultDirName={pf}\MyAwesomeAPP 
DefaultGroupName=My Awesome APP
OutputBaseFilename=MyAwesomeAPP
Compression=lzma
SolidCompression=yes

[Files]
; Incluir todos los archivos del proyecto
Source: "C:\Users\url-a-tu-proyecto\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs
; Incluir los ejecutables generados por pyinstaller
Source: "C:\Users\url-a-tu-proyecto\frontend\dist\frontend.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\url-a-tu-proyecto\backend\dist\backend.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\My Awesome APP"; Filename: "{app}\frontend.exe"
Name: "{group}\My Awesome APP"; Filename: "{app}\backend.exe"

[Run]
; Ejecutar el backend
Filename: "{app}\backend.exe"; Flags: nowait
; Ejecutar el frontend
Filename: "{app}\frontend.exe"; Flags: nowait

C'était ma structure de base.

Compilez, attendez quelques minutes... et la sortie sera générée.

Crear instaladores ejecutables para windows con scripts en python.

Et voici le premier installateur :D

Au début, cela n'a clairement pas fonctionné... mais 16 tests plus tard, l'application est restée en marche. Les scripts en cours d'exécution...

Crear instaladores ejecutables para windows con scripts en python.

Et depuis mon navigateur, j'ai pu accéder à mon application.

Crear instaladores ejecutables para windows con scripts en python.

Ce qui est intéressant dans cette question, ce sont les outils ! Évidemment. Ce que j'aime, c'est que je l'ai trouvé rapide et facile à utiliser inno setup, j'ai appris à gérer certains problèmes de configuration de pyinstaller, comme les drapeaux pour les modèles... l'erreur est très étrange :P

Et l'utilisation des nouvelles technologies et de python est toujours agréable...

Ensuite peut-être une application de bureau avec ces scripts, pour optimiser un peu la taille finale, l'architecture des fichiers et clairement que les terminaux ne fonctionnent pas en direct et directement, avec des messages provenant des environnements de développement et devant entrer dans un hôte local depuis le navigateur ! :panique

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn