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

Python利用PyInstaller封装EXE文件

Python利用PyInstaller封装EXE文件详解

在 Python 开发中,我们常常希望将自己编写的程序封装成可独立运行的 EXE 文件,以便在没有安装 Python 环境的设备上运行。本文将详细介绍如何使用 PyInstaller 封装 Python 文件为 EXE 文件,并说明其中的各种参数的使用方法。

一、准备工作

  1. 安装 Python及其虚拟环境

    • 确保你已经安装了 Python 环境。
  2. 安装 PyInstaller

    • 进入虚拟环境中,输入以下命令安装 PyInstaller:
      pip install pyinstaller
      

我这边已经安装过了。

在这里插入图片描述

二、基本使用方法

  1. 封装单个 Python 文件
    • 假设你的 Python 文件名为 test.py,我这边是进入到虚拟环境的Scripts文件夹下,具体的路径为:D:\Anaconda3\envs\labelimg\Scripts,在此路径下进入终端,然后执行以下命令:

      pyinstaller -F D:\program\transmit.py
      
    • D:\program\transmit.py是我要打包的程序文件路径

    • 执行上述命令后,PyInstaller 会在当前(D:\Anaconda3\envs\labelimg\Scripts)目录下生成一个名为 dist 的文件夹,其中包含了封装好的 EXE 文件。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
打开封装好的.exe文件即可运行程序。

三、PyInstaller 参数详解

  1. -F 参数(生成单个可执行文件)

    • 使用这个参数可以将所有的依赖文件打包到一个单独的 EXE 文件中,这样便于分发和部署。
    • 示例:
      pyinstaller -F test.py
      
  2. -w 参数(无控制台窗口)

    • 如果你希望生成的 EXE 文件在运行时不显示控制台窗口,可以使用这个参数。这对于图形用户界面(GUI)程序非常有用。
    • 示例:
      pyinstaller -F -w test.py
      
  3. -i <图标文件名> 参数(设置程序图标)

    • 可以使用这个参数为生成的 EXE 文件设置一个自定义图标。图标文件需要是 .ico 格式。
    • 示例:
      pyinstaller -F -w -i my_icon.ico test.py
      
  4. --name=<程序名称> 参数(指定程序名称)

    • 这个参数可以用来指定生成的 EXE 文件的名称。
    • 示例:
      pyinstaller -F --name="My App" test.py
      
  5. --add-data <源文件路径;目标路径> 参数(添加额外的数据文件)

    • 如果你的程序需要额外的数据文件,比如配置文件、图片等,可以使用这个参数将这些文件添加到封装后的 EXE 文件中。
    • 示例:
      pyinstaller -F --add-data "data.txt;." test.py
      
    • 在这个例子中,data.txt 文件将被添加到与生成的 EXE 文件相同的目录中。
  6. --hidden-import <模块名称> 参数(处理隐式导入)

    • 有时候,你的程序可能会隐式地导入一些模块,而 PyInstaller 可能无法自动检测到这些导入。这时可以使用这个参数手动指定这些隐式导入的模块。
    • 示例:
      pyinstaller -F --hidden-import "module_name" test.py
      

http://www.kler.cn/news/313961.html

相关文章:

  • 2024“华为杯”中国研究生数学建模竞赛(E题)深度剖析_数学建模完整过程+详细思路+代码全解析
  • Mysql实战
  • RNN的反向传播
  • 经典sql题(九)SQL 查询详细指南总结二
  • MySQL中的LIMIT与ORDER BY关键字详解
  • git 推送文件
  • vue3 ant-design 4.x 表格动态行样式设置
  • Tomcat服务器—Windows下载配置详细教程
  • Sui Builder House锦集,原生USDC和CCTP即将登陆Sui
  • 【HTTP】请求“报头”,Referer 和 Cookie
  • (CS231n课程笔记)深度学习之损失函数详解(SVM loss,Softmax,熵,交叉熵,KL散度)
  • 大批量查询方案简记(Mybatis流式查询)
  • Docker_启动redis,容易一启动就停掉
  • 使用Python实现深度学习模型:智能旅游路线规划
  • Base 社区见面会 | 新加坡站
  • 多层感知机paddle
  • 【nginx】搭配okhttp 配置反向代理
  • nvidia-docker Failed to initialize NVML: Unknown Error
  • 【漏洞复现】泛微OA E-Office jx2_config.ini 敏感信息泄漏漏洞
  • 在线查看 Android 系统源代码 Android Code Search
  • leetcode49字母异位词分组
  • 深度解析 MintRich 独特的价格曲线机制玩法
  • OpenGL 原生库5 变换
  • 从拥堵到畅通:HTTP/2 如何解决 Web 性能瓶颈?
  • 集合框架(一):Collection集合的遍历方式
  • Cypress初次安装启动常见问题
  • Element Plus 中Input输入框
  • JVM 内存管理详解
  • 宝塔面板FTP连接时“服务器发回了不可路由的地址。使用服务器地址代替。”
  • 共轭传热和浸没边界耦合相关的论文的阅读笔记