2017-07-25 3 views
1

J'ai créé un programme qui lance un autre programme python en utilisant os.startfile().Cx Freeze - comment convertir plusieurs fichiers dans le dossier de construction

Je voulais avoir ce que deux fichiers exe, en lançant le second en utilisant subprocess.call() à la place, dans 1 dossier de construction, mais je ne trouve pas comment faire cela.

J'ai essayé de faire un fichier de configuration pour les deux, la création de 2 dossiers de construction, puis la copie 1 des fichiers exe dans l'autre dossier de build, mais a obtenu ceci:

Traceback (most recent call last): 
File "C:\Python34\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 12, 
in <module> __import__(name + "__init__") 
ImportError: No module named 'menu_record__init__' 

Toutes les idées?

Répondre

0

Je suis assez sûr que vous ne pouvez pas utiliser deux exe dans un dossier de construction parce que bien que toutes les dépendances dans le dossier de construction sont les mêmes, les scripts sont différents.

Vous pouvez utiliser get deux exe dans le même dossier de construction avec ce script.

import sys 
from cx_Freeze import setup, Executable 

options = { 
'build_exe': {'path': sys.path + ['modules']} 
} 

executables = [ 
    Executable('script_1.py'), 
    Executable('script_2.py')] 

setup(
    name='two exe in one folder', 
    version='0.1', 
    description='Two exe in a single build folder', 
    options=options, 
    executables=executables) 

Découvrez cette autre post, je made

Aussi, vous pouvez copier le deuxième dossier de construction dans la première (vous devrez renommer à quelque chose d'autre ne pas construire) et appelez subprocess.call() à le deuxième fichier de construction exe.

Sinon, j'ai entendu (bien que je ne l'ai jamais essayé) que pyinstaller ou py2exe (je ne sais pas lequel) peut faire un seul fichier exe.

+0

S'il vous plaît voir ma réponse mise à jour – Simon

+0

Il produira deux exe dans un dossier de construction – Simon