Python大佬们看看打包EXE时图标的问题

zoenbo2021-5-1756

把py打包EXE后,标题栏的图标始终不显示。百度过各种解决方法,没一个能解决的。主要就是想把ICO和EXE打包在一起,不是调用。也用过改spec也不好使~求助解决方法~[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-import wxclass 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):    def  OnInit(self):        self.frame = Frame()        self.frame.Show(True)        return Trueif __name__ == '__main__':    app = myApp()    app.MainLoop()
最新回复 (13)
  • ReLoading2021-5-17
    引用2
    zoenbo 发表于 2021-5-17 17:02
    大佬有没有直接打包打进EXE的方法呢?调用网上的没有心仪的图标,没网情况下可能会弹出错误提示吧

    ### 加个判断的事儿,捕获一下异常 避免网络出错,剩下的自由发挥
    [Python] 纯文本查看 复制代码
    # -*- coding:utf-8 -*-import wx,osfrom 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):    def  OnInit(self):        self.frame = Frame()        self.frame.Show(True)        return Trueif __name__ == '__main__':    app = myApp()    app.MainLoop()
  • ReLoading2021-5-17
    引用3
    稍作修改,从网络资源加载图标,随心所欲,更方便
    [Python] 纯文本查看 复制代码
    # -*- coding:utf-8 -*-import wx,osfrom requests import getclass Frame(wx.Frame):    def __init__(self):        wx.Frame.__init__(self, None, title='Title', size=(400, 210),name='frame',style=541072384)        path = 'logo.ico'        if not os._exists(path):            _bin = get('https://www.52pojie.cn/favicon.ico').content            with open(path,'wb') as F:                F.write(_bin)        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):    def  OnInit(self):        self.frame = Frame()        self.frame.Show(True)        return Trueif __name__ == '__main__':    app = myApp()    app.MainLoop()
  • 鸭鸭鸭?2021-5-17
    引用4
    文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的
  • 楼主zoenbo2021-5-17
    引用5
    鸭鸭鸭? 发表于 2021-5-17 11:57
    文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的

    打包时我是按相对路径的,这个例子忘改了。就是相对路径也不好使。不用wx和pyQT好像直接打包就有图标.
  • 昨日黎明2021-5-17
    引用6
    如果一点问题都没有可能是因为图标被覆盖了,实际上窗体都是绘制出来的,可能会存在覆盖
  • C哥8882021-5-17
    引用7
    鸭鸭鸭? 发表于 2021-5-17 11:57
    文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的

    图形化界面,建议你去学pyside2,千万不要去学tkinter。
  • 超人强2021-5-17
    引用8
    pyinstaller -F  -i run.ico run.py
  • 楼主zoenbo2021-5-17
    引用9
    超人强 发表于 2021-5-17 12:48
    pyinstaller -F  -i run.ico run.py

    我用的就是这个,就是标题栏ico不能显示
  • Gaho20022021-5-17
    引用10
    前来观摩
  • 楼主zoenbo2021-5-17
    引用11
    昨日黎明 发表于 2021-5-17 12:07
    如果一点问题都没有可能是因为图标被覆盖了,实际上窗体都是绘制出来的,可能会存在覆盖

    应该是就是没打包进去,大部分教程都是说路径问题
  • q5466245272021-5-17
    引用12
    把图标文件转换为二进制文件,然后导入
  • 2021-5-20
    引用13
  • 2021-5-20
    引用14
  • 游客
    15
返回