Bob's Blog

Web开发、测试框架、自动化平台、APP开发、机器学习等

返回上页首页

解决wxpython提示needs access to the screen的问题



出现该问题的环境为: Mac, Pyenv, Virtualenv, wxPython 4.1.0。即Mac上用Pyenv安装的Python3,并用virtualenv创建虚拟环境并安装wxpython。运行最简单的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.

对于此问题,wxpython官方和stackoverflow上已有不少人提出解决方案,比如提到在虚拟环境venv/bin下创建独立的命令代替python命令等,但是没有一个方案能行。

比如如下链接:

https://wiki.wxpython.org/wxPythonVirtualenvOnMac

https://tamarisk.it/running-wxpython-inside-a-python3-virtualenv/

因为看到提示中的"Please run with a Framework build of python",最后解决的步骤如下:

先更新一下pyenv

brew udpate && brew upgrade pyenv

用下面的命令重新用pyenv安装一次python

env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.8.6

然后用该版本重新设置虚拟环境便可正常运行wxpython界面

pyenv local 3.8.6
pip install virtualenv
virtualenv venv
source venv/bin/activate
pip install wxpython -i https://pypi.douban.com/simple

现在随便来一个wxpython的程序都不会出现该错误了

import wx

app = wx.App()
frm = wx.Frame(None, title="Hello World")
frm.Show()
app.MainLoop()

 

下一篇:  用Pyinstaller为Python程序打包可执行文件
上一篇:  Pyenv离线安装Python避免官方下载过慢

共有0条评论

添加评论

暂无评论