2013-04-01 43 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