【python模块】使用pyinstaller打包成exe文件

本文介绍了PyInstaller模块的安装过程及验证安装成功的方法,并提供了使用该模块进行程序打包的基本命令。

使用笔记

pyinstaller模块: 模块安装
使用命令行安装
这里写图片描述
installer
Running setup.py install for future … done
Running setup.py install for pefile … done
Running setup.py install for pyinstaller … done
Successfully installed altgraph-0.15 future-0.16.0 macholib-1.9 pefile-2017.11.5
出现该字样后说明安装成功
模块使用
打包命令
这里写图片描述
exe程序地址
这里写图片描述
### 减小Pyinstallerexe文件大小的方法 使用PyinstallerPython代码打包exe文件时,生文件可能较大。以下是几种可以减小文件大小的方法及其原因分析: #### 1. 使用`--onefile`模式与`--onedir`模式的选择 在Pyinstaller中,`--onefile`选项会将所有依赖项压缩到一个单独的可执行文件中,而`--onedir`选项会将依赖项打包到一个目录中[^1]。虽然`--onefile`看起来更简洁,但它的文件通常更大,因为它需要包含解压和运行时环境。如果目标是减小文件大小,可以选择`--onedir`模式。 #### 2. 排除不必要的模块 通过`--exclude-module`参数可以排除一些不需要的模块。例如,如果你的程序没有用到Tkinter或numpy等大型库,可以通过以下命令排除它们: ```bash pyinstaller --exclude-module=tkinter --exclude-module=numpy your_script.py ``` 这种方法可以显著减少最终文件的大小[^2]。 #### 3. 使用UPX压缩工具 UPX(Ultimate Packer for eXecutables)是一个免费的可执行文件压缩工具,可以有效减小exe文件的大小。首先需要安装UPX,然后在Pyinstaller命令中添加`--upx-dir`参数指定UPX路径,并启用`--upx`选项: ```bash pyinstaller --upx-dir=path_to_upx --upx=9 your_script.py ``` UPX通过压缩可执行文件中的数据部分来实现文件大小的减小[^3]。 #### 4. 调整spec文件配置 Spec文件Pyinstaller的核心配置文件,可以通过修改它来优化打包过程。例如,可以手动调整`excludes`列表以排除更多不必要的模块,或者设置`compressed=True`以启用压缩功能: ```python a = Analysis(['your_script.py'], pathex=['.'], excludes=['tkinter', 'numpy'], compressed=True) ``` #### 5. 使用Nuitka替代Pyinstaller Nuitka是一个可以将Python代码直接编译为C++代码并生二进制文件的工具。相比于Pyinstaller,Nuitka生文件通常更小且运行速度更快。然而,Nuitka的学习曲线较高,且支持的Python特性可能不如Pyinstaller全面[^2]。 #### 6. 分析依赖项 有时,Pyinstaller可能会自动包含一些未使用的依赖项。可以使用`pydeps`工具分析Python脚本的依赖关系,找出并移除不必要的模块: ```bash pydeps your_script.py --show-depends ``` ### 示例代码 以下是一个使用UPX和排除模块的完整命令示例: ```bash pyinstaller --onefile --exclude-module=tkinter --exclude-module=numpy --upx-dir=/path/to/upx --upx=9 your_script.py ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值