Python cx_Freeze — один исполняемый файл не открывает другой?

tss.py --> этот файл содержит подпроцесс, открывающий другой файл Python (dark.py)

import subprocess as sp

def process():
    programName = "python.exe"
    fileName = "dark.py"
    sp.Popen([programName, fileName])

process()

Эта функция работает, когда я запускаю ее как файл .py на консоли. Однако, когда я создаю 2 исполняемых формы (tss.exe и dark.exe) с помощью cx_Freeze и открываю tss.exe, другой файл dark.exe не открывается.

ниже приведен файл setup.py, используемый для сборки файла python:

from cx_Freeze import setup, Executable
import sys
import os

tclDLL = r'C:\Users\Username\AppData\Local\Programs\Python\Python36-32\DLLs\tcl86t.dll'
tkDLL = r'C:\Users\Username\AppData\Local\Programs\Python\Python36-32\DLLs\tk86t.dll'

Packages = ["subprocess","tkinter"]
Include_Files = ["icon.ico", "dark.ico",tclDLL, tkDLL]

build_exe_options = {"packages": Packages, "include_files": Include_Files}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

os.environ['TCL_LIBRARY'] = r'C:\Users\Username\AppData\Local\Programs\Python\Python36-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Users\Username\AppData\Local\Programs\Python\Python36-32\tcl\tk8.6'

setup(  name = "TSS",
        version = "1.0",
        description = "Tournament Scoring System",
        options = {"build_exe": build_exe_options},
        executables = [Executable("tss.py", base=base, icon="icon.ico")
                       Executable("dark.py", base=base, icon="dark.ico")])

Спасибо


person J.J    schedule 08.02.2018    source источник


Ответы (1)


Попробуйте переименовать fileName = "dark.py" в fileName = "dark.exe" в своем скрипте.

Помните, что вы конвертируете файл .py в исполняемый формат, т.е. .exe, поэтому вы должны запускать свой exe-файл, а не файл .py, который не будет работать на другом компьютере.

Итак, это должно выглядеть так:

import subprocess as sp

def process():
    fileName = "dark.exe"
    sp.call(fileName)

process()
person Simon    schedule 08.02.2018