cx-Freeze 可执行文件不会 运行 在另一台计算机上

cx-Freeze Executable Won't Run on Another Computer

我在 Python 中编写了一个程序并使用 cx-Freeze 创建了一个可执行文件。我必须在 setup.py 中包含 tk 和 tcl 库以及一些图像,以使可执行文件正确 运行。

我将这些文件链接到我计算机上的绝对路径,认为 cx-freeze 会将这些文件复制到最终的可执行文件夹,以便它成为它自己的包的一部分。

程序 运行 在我的 PC 上完美运行,但在我同事的 PC 上 运行 运行不正常。

当 .exe 不 运行 时,包括 tcl 和 tk 库以及图像是我故障排除过程的一部分。我不知道下一步该做什么。

'''This is my setup.py file.'''

from cx_Freeze import setup, Executable
import sys
import os

includes = []

include_files = 
 [r"C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\DLLs\tcl86t.dll",
                 r"C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\DLLs\tk86t.dll",
                 r"C:\Users\jchoujaa\Desktop\Code\STARx App\Savvy Logger\Developer\Imaging\savron.png",
         r"C:\Users\jchoujaa\Desktop\Code\STARx App\Savvy Logger\Developer\Imaging\s-icon.ico",
         r"C:\Users\jchoujaa\Desktop\Code\STARx App\Savvy Logger\Developer\Imaging\STAR.png"]

os.environ['TCL_LIBRARY'] = r'C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\tcl\tk8.6'

base = 'Win32GUI' if sys.platform == 'win32' else None

setup(name = "SavvyLogger",
        version = "1.0",
        description = "Logger Interpreter",
        options={"build_exe": {"includes": includes, "include_files": include_files, 'packages': ['pandas', 'numpy']}},
        executables = [Executable("SavvyLogger.py", base=base)])

这是我的同事在尝试打开我的可执行文件时收到的错误消息: enter image description here

Henry Yik 在评论中的建议有效。

问题是我将 tkinter 使用的图像的路径设置到桌面上的文件夹。

Henry 建议我将图像文件放在与我的 .py 脚本相同的文件夹中,并从图像变量中删除路径名。

这成功了!