gpt4 book ai didi

python-3.x - wxPython 需要什么才能成功运行?

转载 作者:行者123 更新时间:2023-12-04 12:44:24 26 4
gpt4 key购买 nike

我试图让 wxPython 在 pyenv 中工作基于 virtualenv 的 virtualenv和 virtualenvwrapper MacOS 上的插件。我已经阅读了几个关于如何完成这项工作的问题,但大多数答案似乎都假设我使用的是系统 python 版本,和/或只解决了一个损坏设置的一个方面。我还没有看到任何解释 wxPython 在启动时检查什么的内容。

我有 pyenv 用 --enable-framework 编译的 python 3.7 .

env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.7.4
pyenv它本身是从 git 中最近(在过去几周内)拉取的,安装在我的 homedir 中。

需要明确的是,我的 Python 工具链中的任何工具或库都不是 Homebrew 安装的。

我的 virtualenv 可以通过 --system-site-packages 访问框架.据推测,访问框架和显示是 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.



在我看来,我应该需要的一切都可用。
% pyenv which python3.7
/Users/matt/.pyenv/versions/3.7.4/bin/python3.7

% mkvirtualenv --system-site-packages --python python3.7 wxtest
Running virtualenv with interpreter /Users/matt/.pyenv/shims/python3.7
Already using interpreter /Users/matt/.pyenv/versions/3.7.4/Python.framework/Versions/3.7/bin/python3.7
Using base prefix '/Users/matt/.pyenv/versions/3.7.4/Python.framework/Versions/3.7'
New python executable in /Users/matt/.ve/wxtest/bin/python3.7
Also creating executable in /Users/matt/.ve/wxtest/bin/python
Installing setuptools, pip, wheel...
done.
virtualenvwrapper.user_scripts creating /Users/matt/.ve/wxtest/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/matt/.ve/wxtest/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/matt/.ve/wxtest/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/matt/.ve/wxtest/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/matt/.ve/wxtest/bin/get_env_details

% python -m site
sys.path = [
'/Users/matt/devel/wxtest',
'/Users/matt/.ve/wxtest/lib/python37.zip',
'/Users/matt/.ve/wxtest/lib/python3.7',
'/Users/matt/.ve/wxtest/lib/python3.7/lib-dynload',
'/Users/matt/.pyenv/versions/3.7.4/Python.framework/Versions/3.7/lib/python3.7',
'/Users/matt/.ve/wxtest/lib/python3.7/site-packages',
'/Users/matt/.pyenv/versions/3.7.4/Python.framework/Versions/3.7/lib/python3.7/site-packages',
]
USER_BASE: '/Users/matt/.local' (exists)
USER_SITE: '/Users/matt/.local/lib/python3.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

% pip install wxPython
Collecting wxPython
[...]
Successfully installed numpy-1.18.0 pillow-6.2.1 six-1.13.0 wxPython-4.0.7.post2
IsDisplayAvailable()的代码被埋在 _core共享对象库,所以不是特别容易检查。我不是 C++ 编码员,我在代码库中四处挖掘,到目前为止我只能找到 src/_app.i 中的文档字符串。 ,不是实际的代码。

  • On Mac OS X a False return value will mean that wx is not able to access the window manager, which can happen if logged in remotely or if running from the normal version of python instead of the framework version, (i.e., pythonw.)


我在这里所拥有的似乎满足了该要求 list 。我没有 pythonw二进制,但作为 pythonw(1)手册页说:

Actually, since Python 2.5, the normal python also allows GUI access, so python and pythonw are now interchangeable.



有没有人对 wxPython 在运行之前实际期望找到的内容有详尽的列表?

最佳答案

您遇到的错误很可能是“brew-hole”(也就是 wxpython v3 和有时 v4 的自制软件安装/兼容性问题)。

要测试手头可能出现的一些问题,请在 pyenv 中执行以下操作:

  • python --version
  • python3 --version

  • 它们是如何安装的?你用过冲泡吗?
  • 如果 brew 或任何非 anaconda:全部卸载。
  • 然后:通过 anaconda 2019. (xx >04) 打包版本重新安装 python,它会根据您的选择为您提供 3.7.4 或 3.7.5。
  • 通过 conda/pip cmd-line 重新安装默认安装中没有的所需软件包。

  • Anaconda “base” 是您的默认环境。
  • 然后conda create --name myenv其中 myenv 是您为环境命名的任何名称。例如“myPythonwx408”环境。
  • 命令行:conda activate myenv

  • ......和多田......你去......

    如果错误在 anaconda env 中仍然存在,您可以发布 environment.yml 文件,以便我可以重新创建您的环境进行测试。

    关于python-3.x - wxPython 需要什么才能成功运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59447936/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com