报错信息如下:
Cannot load library /root/anaconda3/envs/sifa/plugins/platforms/libqxcb.so: (libxcb-render-util.so.0: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on “/root/anaconda3/envs/sifa/plugins/platforms/libqxcb.so” : “Cannot load library /root/anaconda3/envs/sifa/plugins/platforms/libqxcb.so: (libxcb-render-util.so.0: cannot open shared object file: No such file or directory)”
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.
如果报错信息没有这么完整,需要先执行以下命令,然后重新运行程序查看详细报错:
export QT_DEBUG_PLUGINS=1
查到的解决方法主要包括几种:
- 创建链接,如下,但是对我没什么用,因为/usr/lib/x86_64-linux-gnu/文件夹下面没有libxcb-render-util.so.0相关的文件;
ln -s libxcb-render-util.so.0 libxcb-render-util.so.1
- 重新安装opencv,也没有起效,但是建议如果后续方法没用,也可以尝试一下,因为我是重新安装了opencv之后才做的其他尝试,有可能和这个也有关系;
pip3 uninstall opencv-python
pip3 install opencv-contrib-python
sudo apt-get install python3-opencv
- 安装对应的库,这个比较麻烦,所以很多博主不太推荐,但是最后帮我解决了。具体就是查看报错信息里说缺失了哪个文件,例如上面是缺失了libxcb-render-util.so.0,就安装libxcb-render-util0(相当于去掉中间的.so.,注意数字0和util之间也没有点):
apt install libxcb-render-util0
之后就反复运行qt程序,如果还报错缺少哪个文件,例如libxcb-keysyms.so.1,就同样安装对应的库libxcb-keysyms1,最终就能成功运行了。