2010-10-20 39 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

相關問題