更改图标时Pyinstaller exe无法正常工作

时间:2016-03-13 19:30:14

标签: python windows tkinter fatal-error pyinstaller

我正在使用python Tkinter制作GUI。它也使用numpy和matplotlib。所以,我使用pyinstaller并从python脚本中生成一个exe。它运行完美,完成了我想要的一切。 然后我尝试用gui窗口(我使用的是Windows 10)用这行改变tk图标

master.iconbitmap(default='image.ico')
除了这一行之外,我没有改变主程序。然后使用pyinstaller和我做了没有任何错误的exe。但是当我试图运行exe时它显示“致命错误!file.exe返回-1” 我错过了什么?如何解决这个问题?

另外我还有一个问题,构建的第一个exe(不更改图标)在Windows-10和Windows-8上运行,但在Windows-7中不运行。在Windows-7中它显示相同的错误“致命错误!file.exe返回-1”

3 个答案:

答案 0 :(得分:1)

尝试设置数据:

a.datas += [('C:\\Users\\KoushikNaskar\\Desktop\\Python\\image.ico', 'image.ico')]

自: http://pythonhosted.org/PyInstaller/spec-files.html#adding-data-files

datas是元组列表:(source,dest)

答案 1 :(得分:0)

您的问题(很可能)是您在使用pyinstaller将程序编译为.exe时没有捆绑图标的图像。

你会在你的.spec文件中看到类似的内容:

a = Analysis(['your_script.py'],
         pathex=['your_path'],
         binaries=None,
         datas=['file_1_path', ....], # Here
         hiddenimports=[],
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher)

或者你可以做类似

的事情
a.datas += [item1, item2, ...]

答案 2 :(得分:0)

对于仍然遇到此问题的用户,我发现将iconbitmap行指向完整路径将解决此问题。在输入.ico文件的完整路径之前,我最初与原始海报存在相同的问题。

示例:

wm_iconbitmap('E:\icon_name.ico')