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?
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.
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
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).
# -*- 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 )