J'utilise pyinstaller
pour générer un .exe
Fichier pour mon fichier unique python fichier, mais la taille est supérieure à 30 Mo et que le démarrage est très lent. D'après ce que j'ai rassemblé, c'est que pyinstaller
par défaut groupé beaucoup des trucs qui ne sont pas nécessaires. Existe-t-il un moyen de s'assurer que pyinstaller
chiffre sur ce qui n'est nécessaire que si vous ne les apportez que? Ma section d'importation sur mon script ressemble à ceci:
import datetime
import os
import numpy as np
import pandas as pd
import xlsxwriter
from tkinter import *
Edit :
Ou est-il également un moyen de voir la liste de tous les modules qu'il a fournis? Je peux donc les traverser et exclure ceux que je n'ai pas besoin.
J'ai fini par utiliser cx_Freeze
à la fin. Il semble fonctionner beaucoup mieux que py2exe
ou pyinstaller
. J'ai écrit setup.py
Fichier qui ressemble à ceci:
import os
import shutil
import sys
from cx_Freeze import setup, Executable
os.environ['TCL_LIBRARY'] = r'C:\bin\Python37-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\bin\Python37-32\tcl\tk8.6'
__version__ = '1.0.0'
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
include_files = ['am.png']
includes = ['tkinter']
excludes = ['matplotlib', 'sqlite3']
packages = ['numpy', 'pandas', 'xlsxwriter']
setup(
name='TestApp',
description='Test App',
version=__version__,
executables=[Executable('test.py', base=base)],
options = {'build_exe': {
'packages': packages,
'includes': includes,
'include_files': include_files,
'include_msvcr': True,
'excludes': excludes,
}},
)
path = os.path.abspath(os.path.join(os.path.realpath(__file__), os.pardir))
build_path = os.path.join(path, 'build', 'exe.win32-3.7')
shutil.copy(r'C:\bin\Python37-32\DLLs\tcl86t.dll', build_path)
shutil.copy(r'C:\bin\Python37-32\DLLs\tk86t.dll', build_path)
Tout alors on peut être exécuté python setup.py build_exe
Pour générer un exécutable ou python setup.py bdist_msi
Pour générer un installateur.
Pour cela, vous devez créer un environnement distinct, car vous lisez actuellement tous les modules que vous avez installés sur votre ordinateur. Pour créer des commandes d'environnement d'environnement
1 - Créer env FULDER:
python -m venv projectName
2 - Activer l'environnement
source name/Script/activate
3 - Créez un fichier contenant tous les noms de module
pip freeze > requirements.txt
4 - Installez-les
pip install -r requirements.txt