2012-05-07 43 views
1

我正在使用OS X Lion(10.7.3),我正嘗試使用wxPythonpy2app來編寫一個跨平臺,獨立的基於GUI的程序。如何讓py2app使用/包含32位Python(用於wxPython)?

我試圖使用隨Lion附帶的Python 2.7.1。

我得到了wxPython2.8二進制文件(wxPython2.8-osx-unicode-py2.7)。

我通過pip安裝py2app

這是我的小測試程序:

#!/usr/bin/python 
import wx 
app = wx.App() 
frame = wx.Frame(None, -1, 'test.py') 
frame.Show() 
app.MainLoop() 

這是我setup.py

from setuptools import setup 
setup(
    app=["test.py"], 
    setup_requires=["py2app"], 
) 

wxPython的2.8要32位模式,所以我用了arch命令:

arch -i386 /usr/bin/python2.7 test.py 

我該如何告訴py2app使用/包含32位Python?

可以手動交換應用程序包中的相關文件,但這是一個相當笨拙的解決方法。我也可以使用64位的wxPython2.9,但目前還沒有穩定版本。我應該切換到cx_Freeze?這裏最好的做法是什麼?

+0

你的'/ usr/bin/python2.7'安裝是32位還是64位?如果它是64,你必須安裝32位版本並使用它。 – mata

+0

文件/usr/bin/python2.7(Python 2.7.1)告訴我這是一種具有2種體系結構(64位和32位)的通用二進制文件。 來自python.org的32位只Python 2.7.3不適用於OSX 10.7。 – armin

+1

我安裝了python-2.7.3-macosx10.3.dmg,它不支持64位,它確實有幫助。但是,現在我有一個默認的python,它不必要地支持PPC體系結構,而整個軟件包實際上是10.3而不是10.7。這真的是要走的路嗎? – armin

回答

0

如果您安裝了64位Python,那麼它將創建一個64位應用程序。
如果您安裝了32位Python,那麼它將創建一個32位應用程序。

如果你已經安裝了,那麼創建的內容將取決於Python從32位或64位安裝文件夾收集庫的位置。
在Windows上,這取決於哪個Python可執行文件實際運行。這取決於哪一個是您的系統或用戶PATH設置中的第一個。

當你鍵入蟒蛇setup.py,Windows上運行python.exe其python.exe從從命令行運行取決於你PATH environemnt變量。如果你在瀏覽器中點擊setup.py取決於你與.py文件關聯的文件關聯。

您可以很容易地通過從任意一個內生成一個32位python實例來確保正確的運行setup.py。

+0

P.S.如果你在Linux上,那麼通常應用相同的PATH規則。但是由於符號鏈接的原因,一些系統可能會做更復雜的事情。 –

+0

謝謝你的回答,但我不認爲這只是一個PATH問題。在OSX上,python被表示爲支持多種體系結構的單個文件。我認爲它由幾個組合的Mach-O文件組成。 – armin

相關問題