1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Python 3
"""
Icone sous Windows: il faut:
=> un xxx.ico pour integration dans le exe, avec "icon=xxx.ico"
=> un xxx.png pour integration avec PyQt4 + demander la recopie avec includefiles.
"""
import sys, os
from cx_Freeze import setup, Executable
#############################################################################
# preparation des options
# chemins de recherche des modules
# ajouter d'autres chemins (absolus) si necessaire: sys.path + ["chemin1", "chemin2"]
path = sys.path
# options d'inclusion/exclusion des modules
includes = ['ftplib', 'zipfile'] # nommer les modules non trouves par cx_freeze
excludes = []
packages = [] # nommer les packages utilises
# copier les fichiers non-Python et/ou repertoires et leur contenu:
includefiles = [
('ui'),
('mainwindow.py'),
('addwindow.py'),
('thread'),
('tool'),
('mysql')
]
if sys.platform == "win32":
pass
# includefiles += [...] : ajouter les recopies specifiques à Windows
elif sys.platform == "linux2":
pass
# includefiles += [...] : ajouter les recopies specifiques à Linux
else:
pass
# includefiles += [...] : cas du Mac OSX non traite ici
# pour que les bibliotheques binaires de /usr/lib soient recopiees aussi sous Linux
binpathincludes = []
if sys.platform == "linux2":
binpathincludes += ["/usr/lib"]
# niveau d'optimisation pour la compilation en bytecodes
optimize = 0
# si True, n'affiche que les warning et les erreurs pendant le traitement cx_freeze
silent = True
# construction du dictionnaire des options
options = {"path": path,
"includes": includes,
"excludes": excludes,
"packages": packages,
"include_files": includefiles,
"bin_path_includes": binpathincludes,
"create_shared_zip": False, # <= ne pas generer de fichier zip
"include_in_shared_zip": False, # <= ne pas generer de fichier zip
"compressed": False, # <= ne pas generer de fichier zip
"optimize": optimize,
"silent": silent
}
# pour inclure sous Windows les dll system de Windows necessaires
if sys.platform == "win32":
options["include_msvcr"] = True
#############################################################################
# preparation des cibles
base = None
if sys.platform == "win32":
base = "Win32GUI" # pour application graphique sous Windows
# base = "Console" # pour application en console sous Windows
icone = None
if sys.platform == "win32":
icone = "icon.ico"
cible_1 = Executable(
script="loginwindow.py",
base=base,
compress=False, # <= ne pas generer de fichier zip
copyDependentFiles=True,
appendScriptToExe=True,
appendScriptToLibrary=False, # <= ne pas generer de fichier zip
icon=icone
)
cible_2 = Executable(
script="loginwindow.py",
base=base,
compress=False,
copyDependentFiles=True,
appendScriptToExe=True,
appendScriptToLibrary=False,
icon=icone
)
#############################################################################
# creation du setup
setup(
name="MyApp",
version="1.00",
description="MyApp",
author="Me",
options={"build_exe": options},
executables=[cible_1, cible_2]
) |
Partager