Python Pyinstaller打包exe左上角图标显示的解决方案

1. 找到exe运行时资源文件的绝对路径

sys._MEIPASS是pyinstaller打包的exe运行时创建临时目录的绝对路径,需要在程序运行时判断当前是不是有这个属性,如果有的话,生成临时目录的绝对路径,如果没有的话,那就直接返回当前程序的绝对路径:

import os,sys
def get_resource_path(relative_path):
    if hasattr(sys,'_MEIPASS'):
       return os.path.join(sys._MEIPASS,relative_path)
    return os.path.join(os.path.abspath("."),relative_path)

2. 加载资源

root.iconbitmap(get_resource_path('ico\sms3.ico'))

3. Pyinstaller打包时引入图片资源

–add-data=”image1.png:img” 的意思是把当前目录里一个叫“image1.png”的文件打包进去,但是放在打包后的“img”目录下,也就是变成img/image1.png,文件名不变。

–add-data ‘images:images’ 也就是把当前目录下images文件夹里的文件都打包进去,打包后的目录也是images一样的文件夹下。

Pyinstaller打包代码:

pyinstaller -F -w -i .\sms3.ico --add-data="sms3.ico:ico" .\xxx.py

留下你想说的话