Skip to content

本脚本用于打包后的程序瘦身,用于有效减小pyinstaller/nuitka/python embeddable打包后的程序体积。This script is aimed at reducing the size of packages generated by PyInstaller, Nuitka, or Python embeddable builds through selective file trimming.

License

Notifications You must be signed in to change notification settings

mengdeer589/PythonSizeCruncher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PythonSizeCruncher

打包瘦身脚本

本脚本用于减小由PyInstaller、Nuitka或Python embeddable构建生成的包的大小,通过选择性地删除未使用的文件来实现。

实现原理

当Python程序运行时,会锁定或占用它需要的文件。通过在运行Python程序的同时运行此脚本,可以识别并删除当前未被使用的文件,从而达到筛选出程序不需要的文件的目的。

操作流程

  1. 运行打包好的程序:启动你自己打包好的程序(可以是用PyInstaller、Nuitka或Python embeddable构建打包的),尽量让所有功能都处于开启状态。
  2. 执行瘦身脚本:运行本脚本,并指定程序所在的目录。脚本会自动遍历指定目录下的所有文件。如果发现某个文件未被占用,则认为该文件对程序来说是非必需的,并将其移动到_new目录中。
  3. 检查与恢复:完成文件移动后,关闭自己的程序,然后再次运行。如果遇到缺少文件的提示,可以根据《文件移动清单.txt》中的记录找到并恢复所需的文件。

瘦身效果

  • 对于PyInstaller打包的程序,体积大约可以减少50%。
  • 对于Nuitka和Python embeddable构建打包的程序,体积大约可以减少30%。

注意事项

  • 本脚本尚未完全优化,对于某些对程序至关重要但在运行时并未被占用的文件,需要将其添加到白名单中。首次运行时会自动生成一个white_files.json文件,请根据具体情况调整此列表。
  • 目前仅在Win7/Win11上进行了测试,确认功能正常。
  • 若python3.8无法直接运行main.py源代码,请从Releases页下载发布版。

视频演示

观看这里获取详细的使用教程。

开始使用

  1. 运行你的Python程序,充分执行该程序,尽量运行所有功能(完成调用第三方库的代码块运行)。
  2. 在另一个命令行窗口中运行main.py
  3. 根据输出的信息进行后续操作。

示例

python main.py

贡献

欢迎任何形式的贡献!如果你发现了问题或者有改进的想法,请提交issue或pull request。

许可证

本项目采用MIT许可证。请参阅LICENSE文件以获取更多详情。

About

本脚本用于打包后的程序瘦身,用于有效减小pyinstaller/nuitka/python embeddable打包后的程序体积。This script is aimed at reducing the size of packages generated by PyInstaller, Nuitka, or Python embeddable builds through selective file trimming.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages