web-dev-qa-db-fra.com

Comment compiler le script python en un exécutable binaire

J'ai besoin de convertir un script Python en un exécutable Windows.

J'ai Python 2.6 installé sur python26.

J'ai créé un script et l'ai conservé dans C:\pythonscript. Dans ce dossier, il y a deux fichiers

Setup.py et oldlogs.py (ce fichier doit être couvert)

Le code setup.py est

from distutils.core import setup
import py2exe

setup(console=['oldlogs.py'])

Comment puis-je convertir oldlogs.py à un fichier exe?

103
Dewal Tewari

Ou utilisez PyInstaller comme alternative à py2exe . Voici un bon point de départ . PyInstaller vous permet également de créer des exécutables pour Linux et Mac ...

Voici comment utiliser facilement PyInstaller pour résoudre le problème:

pyinstaller oldlogs.py

De la documentation de l'outil:

PyInstaller analyse myscript.py et:

  • Écrit myscript.spec dans le même dossier que le script.
  • Crée un dossier construit dans le même dossier que le script s'il n'existe pas.
  • Écrit certains fichiers journaux et fichiers de travail dans le dossier de construction.
  • Crée un dossier dist dans le même dossier que le script s'il n'existe pas.
  • Écrit le dossier exécutable myscript dans le dossier dist.

Dans le dossier dist, vous trouverez l'application fournie que vous distribuez à vos utilisateurs.

54
zenpoy

Vous aurez besoin de py2exe . Lire un tutoriel .

10
vivek

Je recommande PyInstaller , un simple script python peut être converti en exe à l'aide des commandes suivantes:

utils/Makespec.py [--onefile] oldlogs.py

qui crée un fichier yourprogram.spec qui est une configuration pour la construction du fichier exe final. La commande suivante construit l'exécutable à partir du fichier de configuration:

utils/Build.py oldlogs.spec

Plus peut être trouvé ici

9
uhz

Pour être complet, cx_Freeze est un autre outil que vous pouvez utiliser pour cela (avec PyInstaller et py2exe, que d'autres réponses ont déjà mentionnées).

6
Thomas K
# -*- mode: python -*-

block_cipher = None

a = Analysis(['SCRIPT.py'],
             pathex=[
                 'folder path',
                 'C:\\Windows\\WinSxS\\x86_Microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_50c6cb8431e7428f',
                 'C:\\Windows\\WinSxS\\x86_Microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_c4f50889467f081d'
             ],
             binaries=[(''C:\\Users\\chromedriver.exe'')],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='NAME OF YOUR EXE',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )
0
Xooonas