在OS X 10.8(64位)上运行wxPython 2.9

时间:2013-04-01 15:40:00

标签: python wxpython osx-mountain-lion pdb winpdb

我有EPD 7.3,并通过Enthought存储库安装了wxPython 2.9。我尝试运行winPDB,这需要wxPython,我收到了这条消息:

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上工作?

1 个答案:

答案 0 :(得分:3)

当用于运行wxPython脚本的Python不是完整的框架构建时,将发生此错误消息。 OSX要求完全访问屏幕的应用程序从应用程序包运行或者是框架的一部分。

通常所有的Pythons都是现在的框架构建,不再需要担心这个问题,但是有一种情况仍然是一个问题,那就是virtualenv或类似的工具。通过构造virtualenv的方式,Python在某种程度上失去了与它来自的框架的连接,因此使用它直接触发了安全机制,并且wx代码无法完全访问屏幕。如果您在virtualenv中遇到问题,那么我在这里写了一个解决方法:http://wiki.wxpython.org/wxPythonVirtualenvOnMac

嗯......我刚刚用EPD对它进行了仔细检查,我发现他们提供的“python”可执行文件不像普通框架版本那样是Python.app二进制文件的前端,但更像是一个普通的unixy Python。因为我现在在Enthought,我会问责任方这是一个错误还是有意,但与此同时你可以通过改变正在执行的Python来解决这个问题。例如,您可以在bash shell中创建一个指向Python.app二进制文件的“pythonw”别名,如下所示:

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

然后你应该能够使用pythonw而不是python来运行WinPDB或其他wxPython应用程序。