我在我的项目(.py)中使用了Sun Valley Ttk Theme。它可以在 IDE (Thonny) 上运行,但当我将 .py 文件转换为 .exe 时,它不起作用。
我收到此行错误:
sv_ttk.set_theme("light")
:
_tkinter.TclError: couldn't read file "C:\Users\{username}\AppData\Local\Temp\_MEI45522\sv_ttk\sv.tcl": no such file or directory.
显然这个目录不存在,但为什么会存在呢?我该怎么办?
主题文件夹,.py和.exe在同一目录下。
除了我用过
-add-data
在转换为 .exe 时添加主题文件夹作为附加内容。
您需要使用
sv_ttk
的 --collect-data
选项将 PyInstaller
模块包含到可执行文件中:
pyinstaller --onefile --collect-data sv_ttk project.py
假设
project.py
是主要的 Python 脚本。
我遇到了和你一样的问题,这是我的解决方案。我觉得这更像是一个技巧
我的情况:C:\Users\PC-Name\AppData\Local\Programs\Python\Python310
tcl
-> tk8.6
并将您的自定义 .tcl 文件放在这里(例如:sprites_light.tcl)pyinstaller Main.exe
dist
-> <your-exe-file-name>
-> tk
并找到您的 tcl 文件。如果它在那里,那么你就成功了祝你好运,希望对你有帮助!!
这对我有用,我想在这里分享给所有需要它的人:
将 Python 转换为 Windows
导入操作系统 导入系统
def 资源路径(相对路径): 尝试: base_path = sys._MEIPASS # 运行 pyinstaller 后,如果仍在查找 # 对于临时文件夹,然后使用 sys._MEIPASS2,如果需要,使用 \ 而不是 / for #所有路径目录 除了例外: base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
将“img/file_names”替换为resource_path(“img/file_names”)
在终端类型中: pyinstaller.exe --onefile --windowed --icon=your_image.ico Your_File.py
或者 在 Windows CMD 中输入: pyinstaller --onefile --windowed --icon=your_image.ico Your_File.py
可执行文件将位于名为“dist”的新文件夹中。
现在将所有依赖文件夹复制到“dist”文件夹中
运行 .exe,如果一切正常,则压缩文件夹以共享。
删除 Build 和 Dist 文件夹以及任何 .spec 文件。
将resource_path("img/file_names")替换回"img/file_names"
使用“inno setup”软件创建正确的安装文件,请使用视频末尾的此链接: https://www.youtube.com/watch?v=p3tSLatmGvU
如果找不到文件错误: 使用 MEIPASS 代替 MEIPASS2,反之亦然,然后使用 \ 代替 /(如果需要)。