admin 2025-05-21 23:56:07 世界杯足球现场

使用soeasypack简易打包python项目和环境依赖

简易精准打包python项目和依赖环境https://github.com/XMQSVIP/SoEasyPack

pip install soeasypack

当你使用nuitka或者pyinstaller打包python项目时如果遇到依赖模块文件缺失,又想打包却又不知道如何解决时,那你就可以试试使用soeasypack打包。

当你觉得使用其它打包工具打包后体积太大,想要删除无用文件时却又不想一个一个删除文件尝试,那你就可以试试使用soeasypack瘦身。

之前使用PyStand和PythonSizeCruncher,后来想有没有更简化一点的方法,于是弄了个soeasypack。仅支持windows,且仅在windows10上测试过

使用soeasypack不需要下载对应版本嵌入式包,也不必再二次瘦身,一次打包理论上就是最小依赖体积,其使用微软procmon进程监控工具(已内置),监控项目运行时访问的文件记录,精准匹配环境依赖,几乎没有什么多余文件, 并且可以生成一个exe外壳(用go语言编译,已内置简化过的go环境)作为程序入口启动项目,因为是靠工具监控文件访问记录,所以自动打开你的项目后,尽量运行你项目的全部功能,以便让工具记录下项目所需的文件。打包后soeasypack会将全部.py文件转为.pyc。

from soeasypack import to_pack

save_dir = r'C:\save_dir'

main_py_path = r'C:\my_project\main.py'

exe_name = '大都督'

to_pack(main_py_path, save_dir, pack_mode=0, embed_exe=False,exe_name=exe_name,

pyc_optimize=1, except_packages=['numpy'])

如果不想使用其打包,也可使用其瘦身功能;

# 项目瘦身

from soeasypack import to_slim_file

to_slim_file(main_run_path: str, check_dir: str, project_dir: str = None, monitoring_time=18)

启动监控工具的时候,360安全卫士等可能会拦截,注意放行,监控工具产生的日志较大,默认监控18秒会产生几百兆日志,所以可根据实际情况调整监控时间。

建议在虚拟环境中使用,非虚拟环境可能会打包无用的依赖(非虚拟环境测试项目:未使用numpy,但项目运行时不知为何访问了numpy,导致复制了这个无用的包)

点击查看操作演示

soeasypack分【普通打包】【快速打包】【伪轻量打包】【ast模式打包】(默认使用快速打包)

快速打包是先启动分析工具分析依赖文件。然后把依赖文件复制到保存目录,再自动生成exe, 没有项目瘦身这一步骤, 所以没有虚拟环境的话,建议使用快速打包模式,它不会复制整个site-packages文件夹

快速打包打包后的文件目录:依赖环境,依赖文件表,run.bat启动程序,和exe启动程序。用户脚本存放在AppData

普通打包会先复制当前python主环境的必要官方文件,然后复制当前py环境的整个site-packages 文件夹到你指定的保存目录,然后启动分析工具分析依赖文件,然后根据依赖文件去删除site-packages 中无用的文件,会保留被删除的文件到removed_file中,然后自动生成exe, 还可选将你的脚本文件转为pyd, 最后项目就打包完成了。因为会复制整个site-packages文件夹,所以普通模式只建议在虚拟环境中使用。

普通打包后的目录:

虚拟环境测试对比:

因.pyc可能会被反编译,建议使用soeasypack的py文件转pyd函数(好像需要先安装Visual Studio, 我自己之前安装的有,其它情况也没试)

更多详情介绍点击下面链接

python打包多个选择,使用soeasypack打包

如果你觉得对你有帮助的话,可以打赏1元让作者买个馍呀