3

希望有一个简单的解决方案来解决我的问题。我有一个 Python tkinter 应用程序,一切都按预期工作。我使用以下命令生成一个独立的 exe 文件进行分发。

"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Scripts\pyinstaller" -w -F --i "theIcon.ico" "myappsource.py"

可执行文件按预期工作。但是,我意识到我忘记在窗口的左上角放一个图标。经过一点在线研究,我确定必须在我的代码中添加以下行(注意我希望应用程序图标和左上角图标相同):

root.wm_iconbitmap('theIcon.ico')

这是唯一的变化,我在 Visual Studio 中运行了应用程序,它按预期工作,在左上角插入图标。但是,当我使用与以前相同的命令重新编译应用程序时,应用程序现在将无法运行。我得到一个标题为“致命错误!”的弹出窗口 以“无法执行脚本 myappsource”作为消息。我已经尝试过多次使用和不使用 root.wm_iconbitmap 行 - 一种方式有效,另一种方式无效。有什么建议么?谢谢

4

1 回答 1

0

我对这里发生的事情有一些猜测。

  • 通过添加该root.wm_iconbitmap行,您现在正在创建对该文件的依赖项。tkinter 将尝试打开 theIcon.ico

  • 但是,您的 pyinstaller 调用仅包括 myappsource。因此,当 tkinter 查找图标时,它会失败,因此您的程序无法运行。(它在 Visual Studio 中可以正常工作,因为您在本地拥有该文件,但在安装程序中没有。)

解决方案是将文件添加到安装程序中。根据pyinstaller docs,您似乎想使用 --add-binary 选项。

试试这个作为你的命令行。(我截断了你到 pyinstaller 的漫长路径,只是为了让重要的论点更明显。)

pyinstaller -w -F --i "theIcon.ico" --add-binary theIcon.ico "myappsource.py" 
于 2018-07-09T19:18:27.433 回答