无法在 Ubuntu(Windows Bash)上运行 Spyder

无法在 Ubuntu(Windows Bash)上运行 Spyder

我是 Linux 新手,目前使用 Windows 11

从 MS 商店安装了 ubuntu bash,并使用此命令安装了 Spyder

sudo apt-get install spyder

但是当我调用 Spyder

我收到这个错误

user1@DELLG3:~$ spyder
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Aborted

我尝试卸载并重新安装 Spyder

但同样的错误

知道如何修复这个问题吗?

答案1

默认情况下 WSL 没有X-服务器,因此您需要提供一个。不同的 X 服务器适用于 Windows。最近我读到,Windows 11 上有一个名为世卫组织

我目前使用的是 Windows 10,我非常喜欢商店中提供的第三方应用程序大温地区

只需安装应用程序并启动它。然后点击任务栏上的图标,浏览列表Linux 应用程序并找到您的程序 - 它应该是 Spider3。

在此处输入图片描述

注意:在 Windows 10 上,必须启用WSL2如果尚未启用,我认为它应该在 Windows 11 上默认启用。


此外,您还可以在 WSL 下安装原生 X 服务器和整个桌面环境,然后设置 RDP 服务并使用 Windows 远程桌面应用程序登录 Ubuntu 的桌面环境。

我认为,在大多数情况下,我们不需要这种复杂的解决方案。不过,这里有一个很棒的视频教程,由 David Bombal 在 YouTube 上提供:WSL2 Ubuntu GUI

答案2

我刚刚在我的“临时” WSL2 Ubuntu 实例之一上尝试了这个功能,并且能够让 Spyder 在 Windows 11 下成功运行。

绝对不需要安装第三方 X 服务器,因为它可以在 WSLg 下毫无问题地运行。

因此有几件事可以尝试。

  • 首先,你能运行其他 X 应用程序吗?确保echo $DISPLAY返回类似 的内容:0。尝试一个简单的sudo apt install -y xterm && xterm。如果有效,那么 WSLg 确实可以正常工作。

  • 如果xterm不起作用,请确保您已启用 WSLg。如果您已从 Windows 10 升级到 Windows 11,则需要退出 WSL,然后:

    wsl --update
    wsl --shutdown
    

    然后重试。

  • 检查以确保您正在运行 WSL2:

    wsl.exe -l -v
    

    如果它显示了您的实例的版本1,则您需要更新到 WSL2。如果是这种情况,请告诉我,我会为您提供指导。

  • 既然您提到您对 Linux 还很陌生,请确保您已更新您的存储库,以便获得所有组件的最新版本:

    sudo apt update && sudo apt upgrade
    
  • 最后,如果您之前按照某些说明修改了$DISPLAY,请检查您的启动文件(例如)并还原。确保您没有在 Windows 11 下的 WSL 中~/.bashrc手动修改变量。DISPLAY

答案3

我遇到了同样的错误,并且它与显示或 X-server 无关。

首先,需要调试spyder命令的输出:

export QT_DEBUG_PLUGINS=1
spyder
        Cannot load library /home/fer/miniconda3/lib/python3.9/site-packages/PyQt5/Qt5/plugins/platforms/libqxcb.so: (libxcb-icccm.so.4: cannot open shared object file: No such file or directory)
        QLibraryPrivate::loadPlugin failed on "/home/fer/miniconda3/lib/python3.9/site-packages/PyQt5/Qt5/plugins/platforms/libqxcb.so" : "Cannot load library /home/fer/miniconda3/lib/python3.9/site-packages/PyQt5/Qt5/plugins/platforms/libqxcb.so: (libxcb-icccm.so.4: cannot open shared object file: No such file or directory)"
        Could not load the Qt platform plugin "xcb" in "" even though it was found.

现在您已经发现这是与libqxcb.so
Check that with相关的东西ldd,并且您可能会发现很多not found库:

ldd /home/fer/miniconda3/lib/python3.9/site-packages/PyQt5/Qt5/plugins/platforms/libqxcb.so

安装 apt-file 以便您可以检查哪些软件包提供了那些缺失的文件(例如):

    sudo apt install apt-file
    sudo apt-file update
    apt-file libxcb-icccm.so.4
    apt-file search libxcb-icccm.so.4
    apt-file search libxcb-util.so.1
    apt-file search libxcb-image.so.0
    apt-file search libxcb-keysyms.so.1
    apt-file search libxcb-render-util.so.0
    apt-file search libxcb-xkb.so.1
    apt-file search libxkbcommon-x11.so.0

获得软件包名称后,安装:

sudo apt-get install libxkbcommon-x11-0 libxcb-xkb1 libxcb-render-util0 libxcb-keysyms1 libxcb-image0 libxcb-util1 libxcb-icccm4

现在,你应该没问题了,或者至少你应该已经清理了下一个错误的路径:-)

这种调试方法可能在 Linux 世界中用于解决几个类似的问题。希望你喜欢它。

相关内容