2013-04-01 44 views
1

我有EPD 7.3,並且已經通過Enthought軟件倉庫安裝了wxPython 2.9。我試圖運行winPDB,這需要wxPython的,我得到這個消息:在OS X 10.8(64位)上運行wxPython 2.9

This program needs access to the screen. 
Please run with a Framework build of python, and only when you are 
logged in on the main display of your Mac. 

我已經看到了在Mac從wxPython的類似的消息,但我還沒有找到一個解決辦法。有人知道這個消息嗎?並且,有沒有人獲得WinPDB在OS X 10.8 w/wxPython 2.9上的工作?

回答

3

當用於運行wxPython腳本的Python不是完整的框架構建時,會發生此錯誤消息。 OSX要求完全訪問屏幕的應用程序可以從應用程序包運行,或者是框架的一部分。

通常現在所有的python都是框架構建,沒有必要再擔心這個問題,但是仍然存在一個問題,那就是virtualenv或類似的工具。隨着virtualenv的構造方式的出現,這種Python會失去與它來自的框架的聯繫,因此直接使用它會觸發安全機制,並且wx代碼無法完全訪問屏幕。如果你在虛擬環境中遇到問題,那麼我已經寫了一個解決方法在這裏:http://wiki.wxpython.org/wxPythonVirtualenvOnMac

嗯......我剛去與EPD仔細檢查一下,發現他們提供的「python」可執行文件是而不是像普通框架構建中的Python.app二進制文件的前端,但更像是一個普通的unixy Python。由於我現在處於Enthought狀態,因此我會向責任方詢問這是一個錯誤還是意圖,但同時您可以通過更改正在執行的Python來解決此問題。例如,你可以創建一個在您的bash shell一個「pythonw」的別名指向Python.app二進制文件,像這樣:

alias pythonw=/Library/Frameworks/EPD64.framework/Versions/7.3/Resources/Python.app/Contents/MacOS/Python 

那麼你應該能夠使用pythonw,而不是運行WinPDB或其他應用程序的wxPython的蟒蛇。

+0

看來,在我的Enthought Canopy 1.4安裝中,沒有安裝任何我可以替代的Framework。看到我的問題[在MacOS 10.9.2上從Enthought Canopy內部運行winpdb](http://stackoverflow.com/questions/23566181/running-winpdb-from-within-enthought-canopy-on-macos-10-9- 2) –

+0

另請參閱我的答案,以獲取更新的解決方法,也是Enthought知識庫文章的鏈接。這將在1.4.1版本中解決。 – RobinDunn