pyinstaller 安装使用方法

本文详细介绍如何使用PyInstaller将Python应用程序及其依赖项打包成独立的exe文件,适用于Windows、MacOSX和Linux平台。文章覆盖安装、使用方法、生成spec文件及常见参数介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打包示例:

pyinstaller -F -w test.py

PyInstaller可以把Python应用程序及其所有依赖项捆绑到一个包中。用户可以在不安装Python解释器或任何模块的情况下运行打包的应用程序。PyInstaller支持Python 2.7和Python 3.3+,并支持诸如numpy,PyQt,Django,wxPython等主要Python软件包。
PyInstaller针对Windows,Mac OS X和Linux进行了测试。但是,它不是一个交叉编译器:要制作一个Windows应用程序,你需要在Windows中运行PyInstaller;在Linux中运行Linux应用程序等。PyInstaller已成功用于AIX,Solaris和FreeBSD,但未经过测试。

官方文档:https://pyinstaller.readthedocs.io/en/stable/

===============================================

0x01 安装

pip install pyinstaller

或者安装github上的develop版

pip install https://github.com/pyinstaller/pyinstaller/tarball/develop

 

0x02 使用方法

打包一个python文件(.py或者.pyw等后缀都没问题)

pyinstaller -F -w pcat.pyw

使用-F会在当前目录下的dist文件夹生成一个独立的exe文件,

而使用-D(默认选项)则会在当前目录下的dist文件夹生成一个文件夹存放exe以及所有依赖文件。

当py文件有窗体时使用-w,在windows下不会显示控制台,-w在*NIX系统里会被忽略。

 

0x03 先生成spec文件

如果不使用--specpath指定路径,会在当前目录下生成一个spec文件,pyinstaller是根据spec文件来创建exe文件。

这个spec文件也是可以先生成的:

pyi-makespec [options] pcat.spec

*其中的[options]代表各种参数

这里生成spec文件后,你可以对其进行修改后,再来安装

pyinstaller [options] pcat.spec

 

0x04 一些常用参数

-d #debug模式,可以得到运行时的跟踪
-p DIR #可以增加pyinstaller搜索模块的路径,多个路径以:分隔。默认site-packages目录下都是可以被识别的
--add-data <SRC;DEST or SRC:DEST> #增加非二进制文件到目录下,windows以;分隔而且得用双引号包含,而*NIX以:分隔
--add-binary <SRC;DEST or SRC:DEST> #增加二进制文件到目录下
-i <FILE.ico or FILE.exe,ID or FILE.icns> #给打包的文件添加图标
--version-file FILE #windows里可把版本信息注射到exe里

其中--add-data、-i 等以后有空补充详细点

而--version-file需要的版本信息文件是需要格式的,

切换到python安装目录下的\Lib\site-packages\PyInstaller\utils\cliutils下,有一个grab_version.py文件

python grab_version.py C:\Windows\System32\cmd.exe

会生成一个file_version_info.txt,里面版本信息的格式可以参考。

 

<think>我们正在回答用户关于PyInstaller使用方法的问题。用户询问如何打包Python程序为可执行文件,并希望得到使用教程。 根据引用内容,我们可以总结出以下步骤和注意事项: 步骤: 1. 安装PyInstaller使用pip安装。 2. 编写好Python程序(例如example.py)。 3. 在命令行中进入程序所在目录,执行打包命令。 注意事项: - 建议在虚拟环境中打包,特别是Windows系统,以避免打包不必要的包,减少可执行文件大小。 - 确保PyInstaller版本最新。 - 可以使用一些参数进行配置,如--onefile(生成单个可执行文件)、--name(指定输出名称)等。 根据引用[1]和[5],基本命令是: pyinstaller example.py 如果要生成单个可执行文件(而不是一个包含多个文件的文件夹),则使用pyinstaller --onefile example.py 此外,引用[5]还给出了一个更复杂的例子,包括指定名称和添加数据文件: pyinstaller --onefile --name my_project --add-data "path_to_file_or_folder:target_folder_in_dist" main.py 因此,我们将按照以下结构回答: 1. 安装PyInstaller 2. 基本打包命令 3. 常用参数说明 4. 注意事项(虚拟环境、版本等) 同时,根据系统级指令,我们需要: - 行内数学表达式用$...$(但本问题可能很少涉及数学公式,所以主要关注代码和文本格式) - 独立公式用$$...$$(同样,可能不涉及) - 使用中文回答 - 生成相关问题 - 引用标识:在引用内容后添加[^数字] 另外,注意引用来源:引用[1]到[5]都是关于PyInstaller的,我们可以直接使用。 由于用户要求“生成相关问题”,我们将在回答的最后添加相关问题部分。 现在开始组织回答:</think>### PyInstaller 打包 Python 程序教程 #### 1. **安装 PyInstaller** ```bash pip install pyinstaller ``` 确保使用最新版本:`pip install --upgrade pyinstaller`[^4] #### 2. **基本打包命令** 进入 Python 程序所在目录,执行: ```bash pyinstaller your_script.py ``` - 生成结果在 `dist/your_script` 文件夹中 - 包含可执行文件 + 依赖库 #### 3. **常用参数说明** | 参数 | 作用 | 示例 | |------|------|------| | `--onefile` | 生成单个exe文件 | `pyinstaller --onefile app.py` | | `--name` | 指定输出名称 | `pyinstaller --name MyApp app.py` | | `--add-data` | 添加资源文件 | `pyinstaller --add-data "images:img" app.py` | | `--icon` | 设置应用图标 | `pyinstaller --icon=app.ico app.py` | | `--noconsole` | 隐藏命令行窗口 | `pyinstaller --noconsole app.py` | #### 4. **完整打包示例** ```bash pyinstaller --onefile --name MyTool --icon=logo.ico --add-data "config.ini:." --noconsole main.py ``` #### 5. **关键注意事项** 1. **虚拟环境打包**(强烈推荐) Windows 系统新建纯净虚拟环境,仅安装必要依赖,可显著减小体积(300MB → 50MB)[^4] ```bash python -m venv pack_env pack_env\Scripts\activate pip install pyinstaller pandas # 仅安装实际需要的包 ``` 2. **路径问题处理** 代码中涉及文件路径时,需使用以下方法获取临时解压路径: ```python import sys if getattr(sys, 'frozen', False): base_path = sys._MEIPASS # 打包后路径 else: base_path = os.path.abspath(".") ``` 3. **数据文件打包** 非代码文件(如图片/配置文件)需通过 `--add-data` 指定: ```bash # Windows 使用分号 pyinstaller --add-data "data;data" app.py # Linux/macOS 使用冒号 pyinstaller --add-data "data:data" app.py ``` 4. **依赖库排除** 移除未使用的库减小体积: ```bash pyinstaller --exclude-module matplotlib app.py ``` #### 6. **调试技巧** - 查看详细构建过程:`pyinstaller --debug all app.py` - 分析依赖树:`pip install pipdeptree && pipdeptree` - 检查打包内容:解压生成的 `exe` 文件(实际是自解压归档) > **最佳实践**:首次打包建议使用基础命令测试,逐步添加参数。复杂项目推荐通过 `.spec` 文件配置(首次运行 `pyinstaller` 后自动生成)[^2][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值