修剪Python运行时
我们有一个Windows应用程序,里面包含了整个Python的安装包(还包括我们用到的几个第三方模块),这样可以保证一致性,也不用一个个单独安装。这种做法效果不错,但应用程序的体积比较大。
显然,我们并没有用到运行环境中的所有功能。我想把运行环境精简一下,只保留我们真正需要的部分。
我打算试试py2exe,但我也想找其他方法,帮助我去掉Python运行环境中不需要的部分。
3 个回答
1
这个py2exe关于压缩的页面建议使用UPX来压缩任何DLL或.pyd文件(其实.pyd文件就是DLL文件)。显然,这个方法并不能帮助你去掉不需要的模块,但是如果你很在意文件的大小,它可以减少你发布的文件的体积。
6
我学到的一个小技巧是,在准备发送 .py 文件时,可以先删除所有标准库中的 .pyc 文件。然后,彻底运行你的应用程序(也就是说,要确保它需要的所有 Python 模块都能被加载)。如果你查看标准库的文件夹,会发现只有那些实际使用过的模块会有 .pyc 文件。而没有 .pyc 文件的 .py 文件就是你不需要的。
5
py2exe和pyinstaller都是用来把Python程序打包成可执行文件的工具。注意:如果你选择使用pyinstaller,建议用它的SVN版本,因为发布的版本已经很老了。它们的“修剪”工作是通过一个叫做modulefinder的工具来完成的。这个modulefinder是Python自带的一个模块,可以帮助你找到一个Python脚本中用到的所有模块。如果你不太相信pyinstaller或py2exe能正确自动处理这些模块,你也可以自己用modulefinder来找出所有需要的模块。