我们有一个(Windows)应用程序,我们使用它来分发整个Python安装(包括我们使用的几个第三方模块),因此我们具有一致性,因此我们不需要单独安装所有内容.这很好用,但应用程序非常庞大.
显然,我们不使用运行时中的所有可用内容.我想减少运行时只包括我们真正需要的东西.
我打算尝试py2exe,但我想尝试找到另一个解决方案来帮助我删除Python运行时不需要的部分.
我在学习下载.py文件时学到的一个技巧:删除标准库中的所有.pyc文件,然后彻底运行你的应用程序(也就是说,足以确保它所需的所有Python模块都将被加载).如果检查标准库目录,则会为实际使用的所有模块提供.pyc文件.没有.pyc的.py文件是你不需要的文件.
无论py2exe和pyinstaller(注:后者使用SVN版本,释放的一个很长的牙齿;-)做他们通过"微调" modulefinder,寻找由给定的Python脚本中使用的所有模块的标准库模块; 你当然可以自己使用后者来识别所有需要的模块,如果你不信任pyinstaller或py2exe来代表你正确地自动完成它.