Mac OS X上的wxPython 2.9

时间:2012-04-30 15:51:16

标签: python wxwidgets enthought

我正在使用Enthought Python Distribution(7.2,64位)。它没有wxPython(这非常重要)。但是,wxPython-2.9似乎支持64位Cocoa接口,所以我试了一下。实际上,这一切都很顺利:命令

python build-wxpython.py --osx_cocoa --mac_framework --install

成功编译,甚至进入EPD网站包。 但是,一个简单的wxPython代码

import wx
wx.App()

因以下错误而失败:

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.

你能给我一些如何治愈的建议吗? EPD显然是一个Python框架(即,查看/Library/Frameworks/EPD64.framework和/L​​ibrary/Frameworks/Python.framework让我信服它)但是这个wxPython构建并不知道。 wxPython的版本是2.9.3.1

3 个答案:

答案 0 :(得分:2)

这是因为您使用system python安装wxpython。所以你可以修改main.py或你的项目定义的其他主要点,添加如下:

import site
site.addsitedir("/Users/jazz/.pyenv/versions/py27/lib/python2.7/site-packages/")

然后使用/usr/bin/python

运行

答案 1 :(得分:1)

使用这样的包装器脚本应该以wxPython正常工作的方式设置环境:

#!/bin/bash

# Real Python executables to use
PYVER=2.7
PYTHON=/Library/Frameworks/Python.framework/Versions/$PYVER/bin/python$PYVER

# Figure out the root of your EPD env
ENV=`$PYTHON -c "import os; print os.path.abspath(os.path.join(os.path.dirname(\"$0\"), '..'))"`

# Run Python with your env set as Python's PYTHONHOME
export PYTHONHOME=$ENV
exec $PYTHON "$@"

只需将其转储到一个文件中,赋予它可执行权限并使用它来启动你的wxPython应用程序而不是python可执行文件。

答案 2 :(得分:0)

我使用anaconda python发行版并遇到了与你描述的相同的问题。即,"该程序需要访问屏幕。 请运行python的Framework构建,并且只有在你的时候 登录Mac的主显示屏。"我不知道我的解决方案是否可以帮助您,因为设置不同,但您可以尝试一下。

以下是解决此问题的方法:

Step1:安装pythonw(我使用命令" conda install python.app",但我确定Enthought必须使用不同的命令)

步骤2:使用pythonw而不是python启动.py文件。

希望它有所帮助。