【发布时间】:2022-10-22 03:12:36
【问题描述】:
我是 Python 新手,刚刚制作了我的第一个应用程序。这是一个简单的密码管理器应用程序,将数据结构存储在 .txt 文件中。我使用 Tkinter 库创建了我的 GUI,一切都按预期工作。将 5 .py 文件编译成单个 .exe 文件没有错误,但是当我尝试运行它时,我更具体地说收到错误“脚本中的未处理异常”: _tkinter.TclError: 无法打开 "C:\Users\cohen\AppData\Local\Temp_MEI96962\base_library.zip\lock_and_key.ppm" 没有这样的文件或目录。
我确实使用了自定义图像来替换程序的窗口图标,它与 .py 文件包含在同一文件夹中。我已经尝试了其他 stackoverflow 帖子中的许多建议解决方案,但似乎没有任何效果。我已经尝试过 root.iconbitmap(.ico 文件的文件路径),也尝试过使用 root.tk.call('wm','iconphoto',root._w,.ppm 文件的文件路径)。我检查了我的图标文件路径中提到的 base_library.zip 文件,但它们不存在,所以我尝试在那里手动添加它们,但仍然是找不到文件的相同错误。
对于为什么会这样,我没有其他想法,在线这一步的教程似乎没有做任何不同的事情。
编辑: 根据要求,这里是错误的屏幕截图和有问题的部分代码。
【问题讨论】:
-
请包括代码的相关部分以及完整的回溯错误。
-
另外你用什么程序来编译exe?
-
我猜问题是您使用了绝对路径,而可执行文件仅适用于编译目录中的相对路径。
-
我正在测试代码并在 Visual Studio 中编写它,但是当我编译它时,我使用命令提示符运行 pyinstaller 模块,命令为:pyinstaller -w -F MPM.py
-
我不认为问题出在绝对路径上,因为我使用 sys.path[0] 代码来获取代码所在的当前目录并将其与使用的文件连接起来,所以这应该不是问题。运行编译命令后,我什至将 .exe 移至包含所有图像的目录,但它仍然无法正常工作。
标签: python-3.x user-interface tkinter