簡體   English   中英

Python cx_Freeze-一個可執行文件無法打開另一個文件?

[英]Python cx_Freeze - One Executable file does not open the other?

tss.py->此文件包含一個子進程,該子進程可打開另一個python文件(dark.py)

import subprocess as sp

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

process()

當我在控制台上將其作為.py文件執行時,此功能有效。 但是,當我使用cx_Freeze創建2個可執行形式(tss.exe和dark.exe)並打開tss.exe時,它不會打開另一個dark.exe文件。

以下是用於構建python文件的setup.py文件:

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")])

謝謝

嘗試在腳本fileName = "dark.exe" fileName = "dark.py"重命名為fileName = "dark.exe"

請記住,您正在將.py文件轉換為可執行格式,即.exe,因此您必須啟動exe文件而不是無法在另一台計算機上運行的.py文件。

所以它應該看起來像:

import subprocess as sp

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

process()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM