1

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

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

4

1 回答 1

3

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

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

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

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

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

于 2013-04-02T00:16:24.223 回答