web-dev-qa-db-fra.com

Comment puis-je compiler mon Python 3 dans un .exe?

Comment convertir mon Python en .exe? J'ai créé un programme avec tkinter et je me demandais comment le rendre possible pour les autres. J'utilise Python 3.3. J'ai cherché un peu mais je n'ai rien trouvé.

22
Samir Chahine

cx_Freeze fait cela mais crée un dossier avec beaucoup de dépendances. py2exe fait maintenant cela et, avec l'option --bundle-files 0, crée un seul EXE, ce qui est probablement la meilleure solution à votre question.

MISE À JOUR: Après avoir rencontré des modules tiers que py2exe avait du mal à "trouver", je suis passé à pyinstaller comme le suggère kotlet schabowy ci-dessous. Les deux ont une documentation abondante et incluent des fichiers .exes que vous pouvez exécuter avec des paramètres de ligne de commande, mais je n'ai pas encore compilé un script que pyinstaller ne peut pas gérer sans débogage ou gratter la tête.

Voici une fonction pratique simple que j'utilise pour créer un .exe avec mes valeurs par défaut de l'interpréteur (bien sûr, un lot ou similaire serait bien aussi):

import subprocess,os
def exe(pyfile,dest="",creator=r"C:\Python34\Scripts\pyinstaller.exe",ico=r"C:\my icons\favicon.ico",noconsole=False):
    insert=""
    if dest: insert+='--distpath ""'.format(dest)
    else: insert+='--distpath "" '.format(os.path.split(pyfile)[0])
    if ico: insert+=' --icon="{}" '.format(ico)
    if noconsole: insert+=' --noconsole '
    runstring='"{creator}" "{pyfile}" {insert} -F'.format(**locals())
    subprocess.check_output(runstring)
15
gss

J'ai trouvé PyInstaller pour fonctionner au mieux. Vous avez de nombreuses options, par exemple, vous pouvez tout emballer dans un seul fichier exe.

J'adore l'utiliser avec Cython pour la vitesse.

9
kotlet schabowy

Vous pouvez utiliser cx_Freeze . Il y a un guide ici .

4
Andy G

Utilisez Pyinstaller . Après l'avoir installé, ouvrez le terminal dans le répertoire où réside votre projet.

  1. $ pyinstaller script1.py script2.py ... (où script1, script2, etc. sont tous les scripts utilisés dans votre projet.)

  2. Une fois la commande terminée, ouvrez le dossier dist et entrez dans le sous-répertoire. Vous y trouverez un exécutable.

J'espère que cela aide.

1
user4340135