错误描述
我有一个带有 Python 3.8.16 的现有 Conda 环境,并且我尝试使用以下命令安装 Spyder:
conda install spyder
以及使用conda install -c conda-forge spyder
(不是同时)安装 Spyder 5.4.3。
但是运行spyder
会输出:
Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Aborted (core dumped)
从 Anaconda navigator 运行它得到:
Exit code: 134
注意:从 Anaconda navigator 运行 Spyder根据环境运行良好!它在有问题的环境中也能正常工作,但在我的笔记本电脑上安装了 Ubuntu 20.04.6,使用相同的 Spyder 版本,但 conda 为 23.9.0。
我发现了几个相关问题:
Rstudio 无法打开,错误为“...无法找到或加载 Qt 平台插件“xcb””
无法打开 qcreator qt.qpa.plugin:在“”中找不到 Qt 平台插件“xcb”
OpenCOR,“无法找到或加载 Qt 平台插件“xcb””
在未安装 qt 的 Linux 上启动 qt5 应用程序时出现“无法加载平台插件”xcb“”
https://github.com/NVlabs/instant-ngp/discussions/300
这些都没有解决我的问题。大多数用户发现解决方案是安装各种各样的libxcb*
软件包。
我努力了:
sudo apt install libxcb1
sudo apt install libx11-xcb1
sudo apt install xcb
sudo apt install libxcb-*
我也尝试过:
export QT_QPA_PLATFORM=minimal
以及 xcb、dxcb 和 vnc 并将其设置为“”。
环境:
export QT_DEBUG_PLUGINS=1
也没有提供任何新的附加信息。此外,在我的笔记本电脑上,回显任何这些变量都不会产生任何结果,但它在那里可以工作。
乍一看,问题似乎是它查找 xcb 的路径是“”,但我不知道要更改哪个变量。经过一番搜索,我尝试了:
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins
因为回显该变量没有任何结果。但是,在 base 中回显该变量也没有结果,但它在那里有效。
这只会导致错误:
Could not load the Qt platform plugin "xcb" in "/usr/lib/x86_64-linux-gnu/qt5/plugins" 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: dxcb, xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
Aborted (core dumped)
更新 1:但是,现在设置export QT_DEBUG_PLUGINS=1
显示了很多内容,其中最后可能相关的几行是:
Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/home/lord/anaconda3/envs/tir-top/bin/platforms" ...
Cannot load library /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libdxcb.so: (/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libdxcb.so: undefined symbol: _ZNK15QXcbIntegration28createPlatformVulkanInstanceEP15QVulkanInstance, version Qt_5_PRIVATE_API)
QLibraryPrivate::loadPlugin failed on "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libdxcb.so" : "Cannot load library /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libdxcb.so: (/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libdxcb.so: undefined symbol: _ZNK15QXcbIntegration28createPlatformVulkanInstanceEP15QVulkanInstance, version Qt_5_PRIVATE_API)"
Could not load the Qt platform plugin "xcb" in "/usr/lib/x86_64-linux-gnu/qt5/plugins" 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: dxcb, xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
Aborted (core dumped)
但我甚至不知道这是否是设置的正确路径,而且似乎我的笔记本电脑上甚至不需要这些变量。
更新 2: 创建新环境并安装 spyder
conda create -n spyd-test python=3.8.16
conda activate spyd-test
conda install spyder
作品!
但由于某种原因,在我已经存在的具有相同 Python 版本的环境中,却没有这样做。
其他系统规格:
Ubuntu 22.04.3
spyder 5.4.3
spyder-kernels 2.4.4
conda 23.9.0
qt5dxcb-plugin (5.0.46+git20220314-1)
$ conda list | grep qt
pyqt 5.15.9 py38hffdaa6c_5 conda-forge
pyqt5-sip 12.12.2 py38h17151c0_5 conda-forge
pyqtwebengine 5.15.6 pypi_0 pypi
pyqtwebengine-qt5 5.15.2 pypi_0 pypi
qt-main 5.15.8 h01ceb2d_12 conda-forge
qt-webengine 5.15.8 h27f4a20_2 conda-forge
qtawesome 1.2.2 py38h06a4308_0
qtconsole 5.4.4 pypi_0 pypi
qtpy 2.4.0 pypi_0 pypi
sphinxcontrib-qthelp 1.0.3 pyhd3eb1b0_0
conda list | grep spyder
pyls-spyder 0.4.0 pyhd3eb1b0_0
spyder 5.4.3 py38h06a4308_1
spyder-kernels 2.4.4 py38h06a4308_0
任何帮助都将不胜感激!
答案1
我在 Ubuntu 系统上运行 Anaconda 时遇到了同样的问题。在网上搜索了一段时间后,我发现解决方案在于所使用的版本。我使用以下方法pyqt5
重新安装了略微降级的版本:pyqt5
pip
pip install pyqt5==5.14.2
并且还pyqtwebengine
使用pip
:
pip install pyqtwebengine==5.14
现在,它运行良好。不过,我不知道为什么我需要降级pyqt5
才能使其正常工作。