【问题标题】:Python spyder could not initialize GLXPython spyder 无法初始化 GLX
【发布时间】:2017-07-06 14:01:51
【问题描述】:

尝试设置用于图像处理的桌面工作站。我最近安装了 ubuntu 16.04 并通过 Adrian 的 guide 安装了 python3、cv2 和虚拟环境。

我没有使用 cv2 3.1.0,而是使用了 cv2 3.2.0,但除此之外,一切都一样。

在正确安装并运行各种测试后,我确认 python3 正在工作并且 cv2 已链接到 python。

由于我习惯了图形界面,我决定安装spyder,因为它有一个不错的 GUI 系统。我之前在 2 个单独的设备(笔记本电脑和树莓派 3)上做过这个。但是,在这台台式计算机上安装时,我遇到了一个奇怪的问题。

当我运行 spyder 时,它会导致以下错误

  Could not initialize GLX
  Aborted (core dumped)

我一直在网上寻找解决方案,但我似乎找不到这个问题的答案

编辑:我在 ubuntu 上搜索核心转储文件,发现一堆文件都包含相同的代码 00000033。

【问题讨论】:

    标签: python opencv ubuntu spyder


    【解决方案1】:

    我在 Raspberry Pi 上运行 Ubuntu,并且在使用 Spyder 时遇到了同样的问题。

    尝试运行 spyder 时,我的原始问题如下所示:

    qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile)
    Could not initialize GLX
    Aborted (core dumped)
    

    我在这个线程上尝试了几乎所有的东西,最终能够通过在我试图运行它的用户下导出以下变量来让它工作:

    export QT_XCB_GL_INTEGRATION=none
    

    这是在涵盖类似问题的 QuteBrowser github 问题线程中发现的: https://github.com/NixOS/nixpkgs/issues/66755#issuecomment-657305962

    【讨论】:

    • 我在 manjaro kde Linux 上运行 eagle cad - 9.6.2 时遇到了同样的错误,并且导出运行良好。
    【解决方案2】:

    首先,为了我们的理解:

    GLX(“OpenGL Extension to the X Window System”的初始化)是一个 对提供接口的 X Window System 核心协议的扩展 OpenGL 和 X Window 系统之间以及 OpenGL 的扩展 本身。它使希望使用 OpenGL 的程序能够在一个 X 窗口系统提供的窗口。 GLX区分两种 “states”:间接状态和直接状态。

    无论如何,我在安装 QT 时遇到了类似的问题,并通过安装以下软件包解决了它:libgl1-mesa-dri

    sudo apt-get install libgl1-mesa-dri
    

    我发现的另一个类似的解决方案是:

    sudo apt-get purge nvidia*
    sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.orig
    sudo rm /etc/X11/xorg.conf
    

    对于 32 位,

    sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx:i386 libgl1-mesa-dri:i386
    

    对于 64 位

    sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx:amd64 libgl1-mesa-dri:amd64
    
    sudo dpkg-reconfigure xserver-xorg
    

    希望对你有帮助。

    【讨论】:

    • 谢谢,这解决了问题。一旦我重新安装,它就开始工作了。虽然出现了一个新的错误,这是一个分段错误。看了之后,这似乎是内存错误,所以我将执行全新安装并重试。
    • 感谢您的评论,如果它对其他用户有用,我会留下答案。
    【解决方案3】:

    我在使用 x2go 时遇到了同样的问题。在尝试了上述所有方法之后,我发现的唯一解决方案是以不同的方式启动 spyder。在此之前,我会这样做(它对 spyder 4 非常有效):

    source activate [name of your virtual environment]
    spyder&
    

    自上周以来,“spyder&”命令不再启动 IDE,我通过编写代码设法超越了这一点:

    source activate [name of your virtual environment]
    spyder3
    

    终端仍然抱怨某些问题,但至少我现在可以工作了!

    【讨论】:

    • 如果您有任何问题,激活环境后spyder --reset也可能会有所帮助。之后,再次尝试spyderspyder3
    • 激活环境后,连spyder --reset都给我failed to get the current screen resources Could not initialize GLX Aborted (core dumped)
    • 不确定它是否会起作用,但在激活环境之前尝试重置它。这是一个非常棘手的问题。在它对我有用之前,我尝试了很多不同的方法......唯一有效的是我上面的建议。
    • 如果这不起作用,我的建议是创建一个新环境并在该环境中重置 spyder。让我知道它是否有效。
    • 谢谢乔安娜。最终奏效的是创建一个新的 conda 环境。但是,这仅在我指定特定版本的 qt 并且我认为 spdyer 时才有效。否则 conda 会建议安装给我带来问题的版本。这是令人不安的 b/c 我想将 spyder 与相对较新版本的 tensorflow 一起使用。因此,要正确组合旧的 qt、spyder 以使用新的 tensorflow 是一项艰巨的任务。
    【解决方案4】:

    我遇到了这个问题,使用 ssh 连接时 spyder 没有启动,我遇到了错误: Could not initialize GLX. 这是因为 qt 版本是最新的:5.9

    我无法通过安装 pyopengl 来解决它,也无法通过我在网上找到的任何其他修复程序来解决它。 简单地安装 qt 5.6.2(使用 conda -c conda-forge)也不起作用,因为它将我的 matplotlib 版本降级到 2.2

    我通过重新安装完整的 conda 环境来确保我拥有所需的 matplotlib 版本:3.1.1

    解决方案: conda install -c conda-forge matplotlib=3.1 qt=5.6.2 spyder

    【讨论】:

      猜你喜欢
      • 2018-11-19
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多