我们有一个(Windows)应用程序,我们使用它来分发整个Python安装(包括我们使用的几个第三方模块),因此我们具有一致性,因此我们不需要单独安装所有内容。这很好用,但应用程序非常庞大。
显然,我们不会使用运行时中的所有可用内容。我想减少运行时间,只包括我们真正需要的东西。
我打算尝试py2exe,但我想尝试找到另一个解决方案来帮助我删除Python运行时不需要的部分。
答案 0 :(得分:6)
我在学习下载.py文件时学到的一个技巧:删除标准库中的所有.pyc文件,然后彻底运行你的应用程序(也就是说,足以确保它需要的所有Python模块都是加载)。如果检查标准库目录,则会为实际使用的所有模块提供.pyc文件。没有.pyc的.py文件是你不需要的文件。
答案 1 :(得分:5)
py2exe和pyinstaller(注意:对于后者使用SVN版本,释放的版本非常长;-)做“修剪” via modulefinder,标准库模块,用于查找给定Python脚本使用的所有模块;你当然可以自己使用后者来识别所有需要的模块,如果你不信任pyinstaller或py2exe来代表你正确地自动完成它。
答案 2 :(得分:1)
这个py2exe page on compression建议使用UPX压缩任何DLL或.pyd文件(实际上只是DLL)。显然,这对于修剪不需要的模块没有帮助,但如果这是一个很大的问题,它可以/将减少你的发行版的大小。