使用py2app构建的精简Python wxPython OS X应用程序?

使用py2app构建的精简Python wxPython OS X应用程序?,python,optimization,wxpython,py2app,Python,Optimization,Wxpython,Py2app,我刚刚用py2app制作了一个pythonwxpython脚本的小应用程序。一切都如广告所示,但应用程序的大小相当大。有没有办法优化py2app以使应用程序更小?py2app或任何其他类似的打包程序大多将所有依赖项和文件捆绑在一起,以便您可以轻松分发它们。大小通常很大,因为它将所有依赖项、共享库、包与脚本文件捆绑在一起。在大多数情况下,很难缩小尺寸 然而,您可以确保以下几点,以便在捆绑的应用程序中有更少的缺点 不要使用--no strip选项,这将确保删除调试符号 使用“-optimize 2

我刚刚用py2app制作了一个pythonwxpython脚本的小应用程序。一切都如广告所示,但应用程序的大小相当大。有没有办法优化py2app以使应用程序更小?

py2app或任何其他类似的打包程序大多将所有依赖项和文件捆绑在一起,以便您可以轻松分发它们。大小通常很大,因为它将所有依赖项、共享库、包与脚本文件捆绑在一起。在大多数情况下,很难缩小尺寸

然而,您可以确保以下几点,以便在捆绑的应用程序中有更少的缺点

  • 不要使用--no strip选项,这将确保删除调试符号
  • 使用“-optimize 2”或-O2”优化选项
  • 使用“-strip(-S)”选项从输出中剥离调试和本地符号
  • 使用“-debug skip macholib”,它不会使它真正独立,但会减小大小
  • 我希望你已经从wxPython中删除了不必要的文件,如demo、doc等
这是一个解决办法

这将取决于您要针对哪个操作系统。Python和wxPython与每个Mac OS X安装捆绑在一起(如果我没记错的话,至少从Leopard开始)

您可以尝试添加
--alias
编译选项。根据报告:

别名模式(-A或--Alias选项)指示py2app构建使用源文件和数据文件的应用程序包

因此,该应用程序将尝试使用Mac OS X版本的wxPython

小心
别名选项称为开发模式

如果您使用的是另一个未与Mac OS X捆绑的库,它将无法工作
如果要将应用程序移植到Windows或Linux,将无法运行


我已经成功地使用了这个方法,但最后还是回到了压缩一个30/40MB的文件。这最后并没有那么大。

让我困惑的是wxPython部分。py2app是否包含整个
wx
包?我能告诉它只取特定的部分吗?我只使用了包的一小部分,这样可以节省大量空间…@c00kiemonster:因为这是c文件的包装器。我猜libs将全部加载并打包。我不认为你可以去掉它。是的,它是一个使用就地库的选项。我会试试看。