【问题标题】:Pyinstaller exe not working when I change the icon当我更改图标时,Pyinstaller exe 无法正常工作
【发布时间】:2016-06-28 17:40:23
【问题描述】:

我正在用 python Tkinter 制作一个 GUI。它还使用 numpy 和 matplotlib。因此,我使用了 pyinstaller 并从 python 脚本中制作了一个 exe。它运行完美,做了我想做的一切。 然后我尝试使用此行更改 gui 窗口中的 tk 图标(我正在使用 Windows 10)

master.iconbitmap(default='image.ico')

除了这一行,我对主程序没有任何改变。然后使用pyinstaller,我制作了exe,没有任何错误。但是当我尝试运行 exe 时,它​​显示“致命错误!file.exe 返回 -1” 我错过了什么?如何解决这个问题?

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

【问题讨论】:

  • 那个文件存在吗?
  • 当您在命令行中使用python(不带pyinstaller)运行程序时,程序是否工作?
  • 当然,它存在,我可以直接运行该脚本并使用 pyinstaller 编译它而不会出现任何错误
  • 你需要的文件打包了吗?
  • @Slayer 有一个很好的观点,这可能是 Pyinstaller 的问题,不包括您的 image.ico 文件

标签: python windows tkinter fatal-error pyinstaller


【解决方案1】:

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

例子:

wm_iconbitmap('E:\icon_name.ico')

【讨论】:

  • 它对我有用,或者我将完整路径放入程序中。
【解决方案2】:

尝试设置如下数据:

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

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

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

【讨论】:

    【解决方案3】:

    您的问题(很可能)是您在使用 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, ...]
    

    【讨论】:

    • 我学会了如何使用编辑规范文件并添加这一行 a.datas += [('image.ico','C:\\Users\\KoushikNaskar\\Desktop\\Python\ \image.ico','DATA')] 但它没有完成工作然后我发现我是否将图标文件保存在与它工作的 exe 相同的文件夹中。
    猜你喜欢
    • 2019-03-14
    • 2017-03-19
    • 1970-01-01
    • 2014-06-11
    • 2018-03-30
    • 2022-08-18
    • 1970-01-01
    • 2023-03-26
    • 2023-02-18
    相关资源
    最近更新 更多