我用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
答案 0 :(得分:0)
Yenry Yik在评论中的建议奏效了。
问题是我已将tkinter使用的图像的路径设置为位于桌面上的文件夹。
Henry建议我将图像文件与.py脚本放在同一文件夹中,并从图像变量中删除路径名。
这行得通!