使用pipenv缩小pyinstaller打包的exe文件

版权申诉
5星 · 超过95%的资源 16 下载量 199 浏览量 更新于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文件的大小。