169 votes

Comment puis-je convertir un fichier .py en .exe pour Python ?

J'essaie de convertir un programme Python assez simple en un exécutable et je n'ai pas trouvé ce que je cherchais. J'ai donc quelques questions (j'utilise Python3.6) :

Les méthodes que j'ai trouvées jusqu'à présent pour y parvenir sont les suivantes

  1. le téléchargement d'une ancienne version de Python et son utilisation pyinstaller/py2exe
  2. mettre en place un environnement virtuel dans 3.6 qui me permettra de faire 1.
  3. télécharger un convertisseur Python-C++ et l'utiliser.

Voici ce que j'ai essayé et les problèmes que j'ai rencontrés.

  • J'ai installé pyinstaller avant le téléchargement requis avant lui (pypi-quelque chose) donc cela n'a pas fonctionné. Après avoir téléchargé le fichier prérequis, pyinstaller ne le reconnaît toujours pas.
  • Si je configure un virtualenv en 2.7, dois-je vraiment avoir la 2.7 installée ?
  • De même, les seuls convertisseurs de python en C++ que je vois ne fonctionnent que jusqu'à python 3.5. Dois-je télécharger et utiliser cette version si je tente cette opération ?

8 votes

Je ne sais pas pourquoi cette question a été déclassée (peut-être parce que les recommandations d'outils sont hors sujet pour l'OS), mais cette question sera utile à d'autres personnes à l'avenir. Les questions précédentes similaires n'ont pas été marquées comme hors sujet, par ex. stackoverflow.com/questions/2136837/

0 votes

Vous pouvez également consulter le sujet : Comment changer .py en .exe

150voto

Étapes à suivre pour convertir un fichier .py en .exe dans Python 3.6

  1. Installer Python 3.6 .
  2. Installez cx_Freeze, (ouvrez votre invite de commande et tapez pip install cx_Freeze .
  3. Installez idna, (ouvrez votre invite de commande et tapez pip install idna .
  4. Écrire un .py programme nommé myfirstprog.py .
  5. Créez un nouveau fichier python nommé setup.py sur le répertoire courant de votre script.
  6. Dans le setup.py Le code ci-dessous et l'enregistrer.
  7. En appuyant sur shift, faites un clic droit sur le même répertoire, afin d'ouvrir une fenêtre d'invite de commande.
  8. Dans l'invite, tapez python setup.py build
  9. Si votre script est exempt d'erreurs, il n'y aura aucun problème lors de la création de l'application.
  10. Vérifiez le dossier nouvellement créé build . Il contient un autre dossier. Dans ce dossier, vous trouverez votre application. Exécutez-la. Faites-vous plaisir.

Voir le script original dans mon blog .

setup.py :

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

EDIT :

  • assurez-vous qu'au lieu de myfirstprog.py vous devriez mettre votre .py nom de fichier d'extension tel que créé dans étape 4 ;
  • vous devez inclure chaque import ed dans votre .py en packages liste (ex : packages = ["idna", "os","sys"] )
  • any name, any number, any description sur setup.py ne doit pas rester le même, vous devez le modifier en conséquence (ex : name = "<first_ever>", version = "0.11", description = '' )
  • le site import ed doivent être installés avant de commencer étape 8 .

12 votes

Existe-t-il un moyen de le rendre exécutable de manière autonome ? Si je procède comme vous le conseillez dans votre article, je me retrouve avec un dossier exe.win.32-3.6. qui est plein de fichiers et de répertoires de soutien (comme 'collections/', 'email', etc.). C'est beaucoup pour un simple print('hello'). J'aimerais créer un seul fichier exécutable, qui fonctionnera tel quel sur un autre ordinateur, sans avoir besoin d'autres fichiers. Existe-t-il une option de compilation pour cela ?

1 votes

2 votes

@FanaticD Python n'est pas votre meilleure option. Cython (un cauchemar à faire fonctionner) ou Nuitka serait votre meilleur choix. Mais les faire fonctionner est un exploit en soi.

104voto

Python 3.6 n'est toujours pas supporté par Pyinstaller. Donc pour l'utiliser, vous aurez besoin de Python 3.5 ou plus. Je ne suis pas sûr pour py2exe.

Quoi qu'il en soit, le cas 1 devrait être fait comme ceci :

Ouvrez une fenêtre cmd dans votre dossier Python (ouvrez une fenêtre de commande et utilisez cd ou, tout en maintenant la touche Maj, cliquez avec le bouton droit de la souris sur l'explorateur Windows et choisissez "Ouvrir une fenêtre de commande ici"). Ensuite, il suffit de saisir

pip install pyinstaller

Et c'est tout.

La façon la plus simple de l'utiliser est d'entrer dans votre invite de commande

pyinstaller file_name.py

Pour plus de détails sur la façon de l'utiliser, jetez un coup d'oeil à cette question .

Mise à jour

Python 3.6 est maintenant supporté par Pyinstaller

5 votes

Je viens de tester avec python 3.7.0. Beaucoup d'avertissements, mais compilé avec succès et fonctionnant sous Windows 10.

2 votes

J'ai compilé un programme avec python 3.5.0, sans avertissement ni erreur, et il s'exécute comme prévu.

1 votes

Quelqu'un sait-il ce qui compte dans un Pyinstallateur ? Est-ce qu'une version exe de Windows 10 fonctionnera sous Windows 8 ? ou est-ce qu'une version 32 bits de Windows 10 fonctionnera sous Windows 10 64 bits ?

38voto

Gab Points 122

Il existe un projet open source appelé auto-py-to-exe. sur Github . En fait, il utilise aussi Pyinstaller en interne, mais comme il a une interface graphique simple qui contrôle Pyinstaller, il peut être une alternative confortable. Il peut également produire un fichier autonome, contrairement à d'autres solutions. Ils fournissent également une vidéo montrant comment le mettre en place.

GUI :

Auto Py to Exe

Sortie :

Output

4 votes

Vous auriez dû mentionner que cela nécessite MVC++. erreur : Microsoft Visual C++ 14.0 est requis.

4 votes

Je ne trouve pas d'intérêt à cela puisqu'il est construit sur pyinstaller et si vous obtenez une erreur dans pyinstaller, vous allez l'avoir ici aussi !

13voto

Gerschel Points 61

Je ne peux pas vous dire ce qui est le mieux, mais un outil que j'ai utilisé avec succès dans le passé était cx_freeze. Ils ont récemment mis à jour (le 7 janvier 17) à la version 5.0.1 et il supporte Python 3.6.

Voici le pypi https://pypi.python.org/pypi/cx_Freeze

Les documents montrent qu'il y a plus d'une façon de procéder en fonction de vos besoins.
http://cx-freeze.readthedocs.io/en/latest/overview.html

Je ne l'ai pas encore essayé, je vais donc pointer vers un post où la manière simple de le faire a été discutée. Certaines choses peuvent ou non avoir changé.
Comment utiliser cx_freeze ?

11 votes

Il convient de mentionner que cxFreeze ne traite pas les exécutables à fichier unique.

10voto

Tejas Joshi Points 89

py2exe est une extension de distutils qui permet de construire des programmes exécutables Windows autonomes (32 et 64 bits) à partir de scripts Python ; Python 3.3 et plus sont supportés. Il peut construire des exécutables de console, des exécutables Windows (GUI), des services Windows et des serveurs COM DLL/EXE.

Vous pouvez le télécharger ici :

https://pypi.org/project/py2exe/

3 votes

Parce qu'il ne fonctionne pas sur Python 3.6 que le PO a spécifiquement écrit qu'il utilise.

1 votes

Pyinstaller devrait fonctionner maintenant. Si ce n'est pas le cas, dites-le moi dans les commentaires.

2 votes

Dans l'étape 5, au lieu de pyinstall <nom du fichier>, il faut dire pyinstaller <nom du fichier>.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X