python 将资源文件打包进exe

1、修改代码中资源路径

在执行exe时资源文件会被解压到C:\Users\xxx\AppData\Local\Temp_MEI33282这样的一个名称随机的文件夹
所以要修改代码里资源的路径防止出错

def resource_path(filaeName):
    if hasattr(sys, "_MEIPASS"):
        return os.path.join(sys._MEIPASS, filaeName)
    return os.path.join(filaeName)
 
# 调用资源文件路径如下
 resPath = resource_path(filaeName)

2、修改生成的 *.spec 文件

例如: 我的程序名字是main.py , 以下命令生成main.spec 文件, 与main.py同级目录。

pyinstaller -F -w main.py

这是为了 使编译的时候 能够寻找到 资源文件的路径 进而能够将资源添加进 exe

打开main.spec, 找到EXE 部分, a.datas 下面的数组里[] 按照格式添加资源文件的位置。
第一个字段是文件名; 第二个字段是绝对路径;第三个字段是运行exe时的临时位置,不用改变。

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [("logo.jpg","E:/myproject/Demo/images/logo.jpg","DATA"),
	   ("logo2.jpg","E:/myproject/Demo/images/logo2.jpg","DATA")],
3、使用 spec 文件再次打包 exe
pyinstaller -F main.spec

如果运行时有控制台的话, 需要修改main.spec, 将console=True 改为 False

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值