pyinstaller 打包多个资源文件到一个可执行文件
程序员文章站
2022-07-11 12:30:47
前言pyinstaller-w: 无终端状态-F: 打包成一个可执行文件开始假设 main.py 脚本调用 test.mp4视频文件(main.py和test.mp4在同一级目录),那么将在main.py脚本需要这样写:import osimport sysdef resource_path(relative_path): base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)...
前言
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文件,然后进行细致的修改。
本文地址:https://blog.csdn.net/chouzhou9701/article/details/108233106
上一篇: Python合并多个csv文件