pipinstaller打包突然变大了好多

192 2025-03-16 18:00

使用 PyInstaller 打包后程序体积突然增大,可能是由于以下原因导致的:

  1. 引入了不必要的依赖库:PyInstaller 会将环境中安装的所有依赖库打包进生成的可执行文件中。
  2. 使用了 Anaconda 环境:Anaconda 环境中包含大量默认安装的库,这些库可能会被误打包。
  3. 未对文件进行压缩:未对 Python 解释器或依赖库的二进制文件进行压缩。

以下是解决 PyInstaller 打包体积过大的方法:

1. 使用虚拟环境

通过创建纯净的虚拟环境,只安装项目所需的依赖库,避免打包不必要的模块。

  • 安装 pipenv
    pip install pipenv 
  • 在项目目录下创建虚拟环境并激活:
    pipenv install
    pipenv shell
  • 在虚拟环境中安装项目所需的依赖库和 PyInstaller:
    pip install pyinstaller
    pip install <项目所需依赖库>

     

  • 使用 PyInstaller 打包:
    pyinstaller --onefile your_script.py

     

2. 使用 UPX 压缩

UPX(Ultimate Packer for eXecutables)可以对生成的可执行文件进行压缩,从而减小体积。

  • 下载 UPX 并解压到项目目录下:
    UPX 下载地址
  • 使用 UPX 压缩打包:
    pyinstaller --onefile --upx-dir=<UPX解压路径> your_script.py

3. 排除不必要的模块

在 PyInstaller 的 .spec 文件中,通过 excludes 参数显式排除不需要的模块。

  • 修改 .spec 文件中的 Analysis 部分,添加 excludes 参数:
    excludes=['tkinter', 'tests', 'docutils', 'unittest', 'pylint', 'matplotlib', 'numpy']
  • 使用 .spec 文件重新打包:
    pyinstaller your_script.spec
     

4. 检查代码和资源文件

  • 确保代码中没有引入不必要的库。
  • 减少代码中的重复内容。
  • 如果项目中包含大量资源文件(如图片、音频等),可以考虑将这些文件单独存储,而不是打包到可执行文件中。

通过以上方法,可以有效减小 PyInstaller 打包后的程序体积。

全部评论

·