Python大佬们看看打包EXE时图标的问题
本帖最后由 zoenbo 于 2021-5-17 18:41 编辑把py打包EXE后,标题栏的图标始终不显示。百度过各种解决方法,没一个能解决的。主要就是想把ICO和EXE打包在一起,不是调用。也用过改spec也不好使~求助解决方法~
# -*- coding:utf-8 -*-
import wx
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Title', size=(400, 210),name='frame',style=541072384)
icon = wx.Icon(r'D:\Downloads\1.ico')
self.SetIcon(icon)
self.启动窗口 = wx.Panel(self)
self.Centre()
self.编辑框1 = wx.TextCtrl(self.启动窗口,size=(350, 143),pos=(15, 14),value='夏天来了,有点热',name='text',style=1073741856)
class myApp(wx.App):
defOnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
if __name__ == '__main__':
app = myApp()
app.MainLoop()
本帖最后由 ReLoading 于 2021-5-17 17:32 编辑
zoenbo 发表于 2021-5-17 17:02
大佬有没有直接打包打进EXE的方法呢?调用网上的没有心仪的图标,没网情况下可能会弹出错误提示吧
### 加个判断的事儿,捕获一下异常 避免网络出错,剩下的自由发挥
# -*- coding:utf-8 -*-
import wx,os
from requests import get
# locale.setlocale(locale.LC_ALL, ('de_CH', 'GBK'))
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Title', size=(400, 210),name='frame',style=541072384)
# 如果图标文件被下载到硬盘路径下,除非用户找到并删除
path = 'logo.ico' #这里可以定义绝对路径 例如 c盘
if not os._exists(path):#判断图标文件是否存在,不存在就下载
try: #捕捉网络IO错误,网络资源不存在或者没有网络不会异常;
_bin = get('https://www.52pojie.cn/favicon.ico').content
with open(path,'wb') as F:
F.write(_bin)
except Exception as E:
print(E.args)
else:#判断图标文件是否存在,存在则设置图标(避免异常)
icon = wx.Icon(path)
self.SetIcon(icon)
self.启动窗口 = wx.Panel(self)
self.Centre()
self.编辑框1 = wx.TextCtrl(self.启动窗口,size=(350, 143),pos=(15, 14),value='夏天来了,有点热',name='text',style=1073741856)
class myApp(wx.App):
defOnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
if __name__ == '__main__':
app = myApp()
app.MainLoop() 文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的 鸭鸭鸭? 发表于 2021-5-17 11:57
文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的
打包时我是按相对路径的,这个例子忘改了。就是相对路径也不好使。不用wx和pyQT好像直接打包就有图标. 如果一点问题都没有可能是因为图标被覆盖了,实际上窗体都是绘制出来的,可能会存在覆盖 鸭鸭鸭? 发表于 2021-5-17 11:57
文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的
图形化界面,建议你去学pyside2,千万不要去学tkinter。
pyinstaller -F-i run.ico run.py 超人强 发表于 2021-5-17 12:48
pyinstaller -F-i run.ico run.py
我用的就是这个,就是标题栏ico不能显示 前来观摩 昨日黎明 发表于 2021-5-17 12:07
如果一点问题都没有可能是因为图标被覆盖了,实际上窗体都是绘制出来的,可能会存在覆盖
应该是就是没打包进去,大部分教程都是说路径问题 把图标文件转换为二进制文件,然后导入