2010-10-20 23 views

回答

2

这是一种解决方法。

这取决于您想要定位的操作系统。 Python和wxPython与每个Mac OS X安装捆绑在一起(至少以Leopard开头,如果我没记错的话)

你可能会尝试的是添加--alias编译选项。按照py2app doc

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

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

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

如果您使用另一个未捆绑Mac OS X的库,将无法​​工作
如果你想移植你的应用程序到Windows或Linux,它不会工作

我已经有了一些成功的使用这种方法,但最终,回去压缩30/40MB文件。这到底是不是大。

+0

是的,它是一个选项,而不是使用就地库。会试试看。 – c00kiemonster 2010-10-21 23:57:03

1

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

如何,您可以确保以下内容,以便在捆绑应用程序中有较小的残留。

  • 不要使用--no-strip选项,这样可以确保除去调试符号。
  • 使用 “--optimize 2或-O2” 优化选项
  • 使用 “--strip(-S)” 选项,以从输出
  • 使用剥离调试和本地符号 “--debug-跳过macholib” ,它不会使之真正独立,但会降低大小
  • 我希望你从wxPython中删除不必要的文件,如演示,文档等
+1

这是使我困惑的wxPython部分。 py2app包含整个'wx'包吗?我可以告诉它只采取特定的部分?我只使用一小部分包,这样可以尽可能节省大量空间...... – c00kiemonster 2010-10-21 00:31:36

+0

@ c00kiemonster:因为这是对c文件的封装。我猜这些库将被全部加载和打包。我认为你不能剥夺这一点。 – pyfunc 2010-10-21 00:46:16

相关问题