python 将资源文件打包进exe
  HvTJUzsxOBtS 2023年11月24日 23 0



文章目录

  • 1、修改代码中资源路径
  • 2、修改生成的 *.spec 文件
  • 3、使用 spec 文件再次打包 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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论