pyinstaller 打包多个资源文件到一个可执行文件
2024-09-08 18:16:48
前言
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文件,然后进行细致的修改。
最新文章
- 【转】自学成才秘籍!机器学习&;深度学习经典资料汇总
- CentOS_7.2安装Redis_3.0
- 关于c#的事件如何使用
- 获取客户端ip地址
- DOM、Window对象操作
- 同引擎mysql数据库转导快
- 这次,雅虎真的撤销QA团队了
- c++学习笔记——智能指针
- DIOCP之获取在线用户列表
- Spark on yarn配置项说明与优化整理
- linux C 9*9
- (Android学习系列)一,用按钮实现时间的显示
- SQL Server 重新恢复自动编号列的序号
- Nginx的反向代理
- JS面向对象思想(OOP)
- JDBC 之 事务
- linux note
- jq实现遮罩等待转圈
- line-height各类属性值
- MySQL报错: Character set ‘utf8mb4‘ is not a compiled character set and is not specified in the ‘/usr/share/mysql/charsets/Index.xml‘ file
热门文章
- Java的线程状态
- 工程课Linux第一节笔记
- (一)JPA的快速入门
- nginx反向代理单独的java项目配置示例
- Beats: 使用 Filebeat 进行日志json结构化 - Python
- 使用k8s部署springcloud解决三大问题
- Handler机制与生产者消费者模式
- vue通过插件实现PDF生成以及下载
- SpringBoot 项目部署 (配置文件分离)
- win7升级到win10系统后,node13升级为node16,node版本node-sass版本与不匹配,导致出现npm ERR! ERESOLVE could not resolve