Python Spyder 无法初始化 GLX。

7
尝试为图像处理设置桌面工作站。我最近安装了Ubuntu 16.04,并按照Adrian的指南安装了python3、cv2和虚拟环境。
除了使用cv2 3.2.0外,其他都与指南相同。
正确安装并运行各种测试后,我确认python3正常工作且cv2已连接到python。
由于我习惯使用图形界面,所以我决定安装Spyder,因为它有一个漂亮的GUI系统。我曾在两个不同设备上(笔记本电脑和Raspberry Pi 3)安装过Spyder。然而,在安装在这台台式计算机上时,我遇到了奇怪的问题。
每当我运行Spyder时,就会出现以下错误。
  Could not initialize GLX
  Aborted (core dumped)

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

编辑:我在Ubuntu上搜索核心转储文件时发现了许多包含相同代码“00000033”的文件。

4个回答

15

我在树莓派上运行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


1
我在Manjaro KDE Linux上运行Eagle CAD - 9.6.2时遇到了相同的错误,但导出功能正常工作。 - Ashwin Kumar k

5

首先,为了让我们更好地理解:

GLX("OpenGL Extension to the X Window System" 的缩写)是 X 窗口系统核心协议的扩展,提供 OpenGL 和 X 窗口系统之间的接口以及 OpenGL 本身的扩展。它使希望使用 OpenGL 的程序可以在由 X 窗口系统提供的窗口内运行。GLX 区分两种“状态”:间接状态和直接状态。

无论如何,我在 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

我希望这能对你有所帮助。


谢谢,问题已经解决了。重新安装后,它开始正常工作了。虽然出现了一个新的错误,是分段错误。经过查看,这似乎是内存错误,所以我将执行全新安装并重试。 - Hojo.Timberwolf
感谢您的评论,如果它对其他用户有用,我会留下答案。 - omotto

2

我也遇到了同样的问题,使用x2go。在尝试了上面提到的所有方法后,我发现唯一的解决方法是以不同的方式启动spyder。在此之前,我会按照以下步骤操作(对于spyder 4,这个方法完美地运行):

source activate [name of your virtual environment]
spyder&

自上周起,“spyder&”命令不再启动IDE,我通过编写以下命令来解决这个问题:
source activate [name of your virtual environment]
spyder3

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

如果你遇到了任何问题,激活环境后执行 spyder --reset 可能会有所帮助。之后,再尝试执行 spyder 或者 spyder3 - Joana Rocha
激活环境后,即使运行 spyder --reset 命令也会出现 failed to get the current screen resources Could not initialize GLX Aborted (core dumped) 错误。 - user3731622
1
不确定是否有效,但在激活环境之前尝试重置它。这是一个非常棘手的问题。在它对我起作用之前,我尝试了很多不同的方法...唯一有效的是我上面的建议。 - Joana Rocha
如果那不起作用,我的建议是创建一个新的环境并在其中重置Spyder。如果它起作用了,请告诉我。 - Joana Rocha
谢谢Joana。最终有效的方法是创建一个新的conda环境。但是,只有在我指定了特定版本的qt和spyder时才有效。否则,conda会建议安装给我带来问题的版本。这很令人困扰,因为我想使用相对较新的tensorflow版本与spyder一起使用。因此,找到正确的旧qt、spyder版本与新tensorflow版本的组合是一项挑战。 - user3731622

1
我有这个问题,当使用ssh连接时spyder无法启动,并且出现错误: 无法初始化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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接