当前位置: 首页 > news >正文

将python项目打包成一个可执行文件(包含需要的资源文件)

目标

项目源码是采用Python编写,代码中需要读取部分资源文件。现在需要将项目打包成一个exe文件,没有其他任何多余文件,仅1个exe文件。

打包

安装pyinstaller

在自己项目的虚拟环境中,安装pyinstaller。注意一定要是虚拟环境,不然可能会报错。

pip install pyinstaller

在这里插入图片描述

打包命令

pyinstaller --onefile  -w -i ./logo.ico   --add-data "xxxx/;xxxx/" --name="exe文件名称" .\main.py

参数解释:
–onefile: 将所有依赖项打包到一个单独的可执行文件中。这意味着所有的资源文件、库文件和其他依赖项都将被打包进同一个 .exe 文件中。
-w: 隐藏控制台窗口
-i: 指定图标文件为当前目录下的 logo.ico,这样打包成的程序就会有指定的logo
–add-data: 资源文件或文件夹,我这里是文件夹xxxx。
–name: exe文件名称
.\main.py: 要打包的python脚本
打包成功后显示日志,并在项目的dist文件夹内生成exe文件,且图标为指定的logo.ico,如果多次打包,logo没变,是因为有缓存!可以换个–name或清理缓存解决
在这里插入图片描述

部分源码

对于打包进exe的资源文件,源码中采用sys._MEIPASS获取路径,如本例中

def get_resource_path(relative_path):""" 获取资源文件的绝对路径 """# 如果应用程序是被打包过的,则 base 路径为 sys._MEIPASSbase_path = sys._MEIPASS + "\\xxxx/"return os.path.join(base_path, relative_path)

如果需要窗口也显示小图标logo.则需要将logo.ico文件也放入xxxx下,一起打包入exe代码中。并在代码中指定:

    base_path = sys._MEIPASS + "\\xxxx/"root.iconbitmap(os.path.join(base_path, "logo.ico"))

获取exe执行文件路径

 application_path = os.path.dirname(sys.executable)

http://www.mrgr.cn/news/18682.html

相关文章:

  • 无人机地理测绘技术详解
  • 自定义实现log4j的appender
  • React 更新界面
  • 前端框架的演变与选择
  • 大模型开发转行全攻略:必备知识、技能与学习路径详解,大模型零基础入门到精通
  • 视频合并怎么操作?这篇文章告诉你
  • 快速写一个自己的flutter应用(新手入门)
  • 数据首发!车载手机无线充前装搭载率破40%,哪些玩家在领跑
  • 【编程底层思考】什么是逃逸分析,基于逃逸分析可以做哪些优化(分离对象或标量替换\栈上分配\同步锁消除)
  • 包装和类练习(1)
  • 兔子生崽问题
  • 了解Python的生成器及其优点
  • window安装rocketmq
  • 网络安全知识手册
  • 【BIOS】如何找到SPI的读模式
  • 全网最全的安服工程师修炼手册
  • 机器学习中的增量学习(Incremental Learning,IL)策略是什么?
  • [数据集][目标检测]街道乱堆垃圾检测数据集VOC+YOLO格式94张1类别
  • magisk+lsposed hook okhttp3采集小红书app端接口(包含完整源码)(2024-09-03)
  • 【API】淘系某东商品详情数据解析,API接口系列