python pyinstaller 打包

文章介绍了如何使用PyInstaller工具将多个Python脚本(如test.py)整合成一个可执行文件,同时添加数据文件(如image.ico)并设置图标。通过pyinstaller--onefile--add-datatest.py;.--iconimage.icomain.py这行命令,用户可以将多个.py文件打包成单文件应用程序。
部署运行你感兴趣的模型镜像

一、核心基础

1. 安装

pip install pyinstaller  # 任意环境(系统/虚拟环境)均可安装

2. 打包核心逻辑

打包时,PyInstaller 会自动收集脚本依赖的库(当前环境下的)
生成独立文件,运行时无需 Python 解释器
优先使用虚拟环境打包(避免多余依赖,体积更小)

二、常用命令(最精简)

1. 基础格式

pyinstaller [参数] 脚本名.py

2. 必记参数

  • -F 打包为单文件(所有依赖整合到一个 .exe) 方便分发(推荐)
  • -w 窗口模式(无黑命令行窗口) GUI 程序(必加)
  • -i 图标.ico 指定窗口图标(仅 Windows) 美化程序
  • –name 自定义名 修改生成的 .exe 文件名 区分不同程序
  • –clean 清理上次打包残留(避免冲突) 重新打包时使用
  • -D 多文件模式(生成文件夹,含 .exe 和依赖) 启动速度更快

3. 高频示例(直接抄)

GUI 单文件 + 图标 + 自定义名:

pyinstaller -F -w -i ico.ico --name 我的工具 脚本.py

重新打包(清理残留):

pyinstaller -F -w --clean 脚本.py

三、关键操作步骤

激活虚拟环境(可选但推荐):

venv\Scripts\activate.bat  # Windows CMD

安装依赖(脚本必需 + pyinstaller):

pip install ttkbootstrap pandas openpyxl pyinstaller

执行打包命令:

pyinstaller -F -w -i ico.ico tableprocess.py

找结果:
打包后生成 dist 文件夹,里面的 .exe 就是最终文件
多余文件(build、xxx.spec)可直接删除

四、常见问题(快速排查)

常见问题解决方案
运行 .exe 弹黑窗口打包时加 -w 参数
图标不显示确保图标是 .ico 格式,路径和脚本同级
打包体积太大用虚拟环境打包(仅装必需依赖)
报错 “缺少模块”激活虚拟环境重新安装依赖
启动慢(单文件)换 -D 多文件模式

五、核心总结

  1. GUI 程序必加 -w,单文件分发必加 -F
  2. 虚拟环境打包 = 体积更小 + 无多余依赖(推荐)
  3. 打包后只需要 dist 里的 .exe(可单独复制使用)

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

使用 PythonPyInstaller 打包附属文件,可在打包时通过 `--add-data` 参数来实现。以下为具体操作介绍: ### 安装 PyInstaller 使用 `pip` 安装 PyInstaller: ```bash pip install pyinstaller ``` ### 打包附属文件 `--add-data` 参数的语法规则为:`--add-data="源文件路径;目标路径"`。在不同操作系统中,分隔符会有所不同: - **Windows 系统**:分隔符为分号 `;`。 ```bash pyinstaller -F --add-data="path/to/your/data/file.txt;." your_script.py ``` 上述命令中,`path/to/your/data/file.txt` 是附属文件的源路径,`.` 表示将文件打包到可执行文件的同一目录下,`your_script.py` 是要打包Python 脚本。 - **Linux 和 macOS 系统**:分隔符为冒号 `:`。 ```bash pyinstaller -F --add-data="path/to/your/data/file.txt:." your_script.py ``` ### 在代码中正确获取附属文件路径 打包后的程序在运行时,附属文件的路径会发生变化。为确保能正确访问这些文件,可使用以下代码: ```python import sys import os try: base_path = sys._MEIPASS except AttributeError: base_path = os.path.abspath(".") data_file_path = os.path.join(base_path, 'file.txt') ``` ### 可能遇到的问题及解决办法 - **打包后执行文件提示缺少模块**:有些隐含库 PyInstaller 没有打包进来,可在打包命令中添加 `--hidden-import` 来指定需要打包的隐含库,如 `pyinstaller --add-data "../config/logging_config.yaml;config" --hidden-import=concurrent_log_handler js_spider.py --onefile`。 - **`--add-data` 始终无法将附加文件弄到 `dist` 目录中**:可考虑另寻它法,同时在代码中通过上述方式获取正确文件路径下的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值