0
点赞
收藏
分享

微信扫一扫

pyinstaller 打包多个资源文件到一个可执行文件

前言

pyinstaller

  • -w: 无终端状态
  • -F: 打包成一个可执行文件

开始

假设 ​​main.py​​​ 脚本调用 ​​test.mp4​​​视频文件(main.py和test.mp4在同一级目录),那么将在​​main.py​​脚本需要这样写:

import os
import sys

def resource_path(relative_path):
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)

os.startfile(resource_path('test.mp4'))
input()

这里简单解释一下这个脚本,将多个资源文件最后都打包成一个文件,会临时进行解压,解压的目录为:​​C:\Users\用户名\AppData\Local\Temp\随机目录名​​​, 而我们找到这个目录就需要 ​​sys._MEIPASS​​​ 这个属性数值,而如果没有这个属性的普通运行情况 会返回 ​​os.path.dirname(os.path.abspath(__file__))​​ 也就是普通寻找文件的情况。

打包命令:

pyinstaller -F --add-data test.mp4;. main.py

这里由于我用到了​​input()​​​来阻止程序结束运行,所以没有加入 ​​-w​​ 选项。

–add-data: 第一个参数 是要添加文件或路径,然后是一个分割符 在windows上是​​;​​​ linux上是​​:​​​ 最后参数是​​.​​ 也就是打包后存在的路径,解压后的路径。

当然你也可以通过 ​​pyi-makespec​​ 来生成 spec文件,然后进行细致的修改。


本文来自博客园,作者:​​Hello_wshuo​​​,转载请注明原文链接:​​javascript:void(0)p/15622164.html​​


举报

相关推荐

0 条评论