使用pipenv缩小pyinstaller打包的exe文件
版权申诉
5星 · 超过95%的资源 37 浏览量
更新于2024-09-14
1
收藏 574KB PDF 举报
使用pipenv缩小pyinstaller打包的exe文件大小的方法
在Python开发过程中,将脚本打包成可执行文件(exe)时,有时会发现生成的exe文件体积过大,这可能由于包含了大量的依赖库导致。针对这个问题,本文提供了一种通过pipenv来减小exe文件大小的解决方案。
首先,需要安装pipenv。在命令行环境中,通过以下命令安装pipenv:
```bash
pip install pipenv
```
安装完成后,选择一个磁盘的根目录创建一个新的文件夹,作为虚拟环境的工作空间,并进入该文件夹。使用Shift+鼠标右键,在弹出的菜单中选择“在此处打开PowerShell窗口”(或CMD窗口,取决于你的系统配置)。
在PowerShell中,使用pipenv创建并激活虚拟环境,例如指定Python 3.6版本:
```bash
pipenv install --python 3.6
```
如果在安装过程中遇到编码问题,可能需要重启电脑并避免打开其他程序,然后再尝试上述步骤。
激活虚拟环境:
```bash
pipenv shell
```
激活虚拟环境后,根据你的项目需求,使用pipenv安装所需的库。例如,如果你的脚本使用了pyinstaller、openpyxl和requests库,可以执行以下命令:
```bash
pipenv install pyinstaller
pipenv install openpyxl
pipenv install requests
```
等待安装完成,然后将你的Python脚本移动到这个新建的目录下。使用pyinstaller像平常一样打包你的脚本,例如:
```bash
pyinstaller your_script.py
```
按照这种方法,最终生成的exe文件大小显著减小。在案例中,从64MB降低到了66MB,虽然对于一个只有200多行代码的脚本来说,66MB依然较大,但与之前的64MB相比,已经减少了近1/10,可以显著减轻分发和存储的负担。
需要注意的是,pyinstaller打包生成的大体积exe可能源于多个因素,包括但不限于:
1. **库的体积**:如openpyxl和其他大型库可能会显著增加体积。
2. **动态链接库**:pyinstaller会将所有依赖的动态链接库(DLLs)打包进去,可能导致文件变大。
3. **多平台兼容性**:默认情况下,pyinstaller会打包所有平台的依赖,即使你的程序只针对特定平台。
使用pipenv创建的虚拟环境能确保只包含项目实际需要的库及其依赖,从而减小打包后的文件大小。此外,通过调整pyinstaller的配置,如精简模式(--onefile)或分离模式(--onedir),也可以进一步优化体积。不过,精简模式可能会使调试更困难,而分离模式则会生成多个文件。
通过pipenv管理虚拟环境并精确控制打包的库,以及合理地配置pyinstaller,可以在保证程序正常运行的同时,有效地减小exe文件的大小。
2023-03-16 上传
2020-12-24 上传
2021-01-01 上传
点击了解资源详情
2023-08-17 上传
2024-07-05 上传
2023-05-28 上传
2023-06-06 上传
2020-12-26 上传
weixin_38610573
- 粉丝: 3
- 资源: 919
最新资源
- target-deep-learning:正在进行中的有关神经网络以进行图像异常检测的项目
- 易语言-置托盘图标和弹出托盘菜单程序
- 基于三菱PLC的煤质采样程序.rar
- FunAdmin V1.0 开源管理系统
- 自动CAR-Amit-
- describe-number:在Emacs中任意描述任意数量的数字
- simple_dashboard
- react-parallax:一个用于视差效果的React组件
- SaveVSUMLDiagramsToImageFile:针对Visual Studio 2013 Ultimate和Visual Studio 2015 Enterprise的MSDN“如何:将UML图导出到图像文件”的实现
- CS323-CollinEthanProject:Collin Umphrey和Ethan Monnin-CS323类项目
- 367DataScience
- qa-form-helper:用于 Web 表单 QA 的自动填充书签
- 马丁-福勒-分解第二
- LiteMap Toolbar-crx插件
- 经典三菱PLC带两伺服用于焊接机器程序.rar
- zipkin-rabbit-swagger