Ubuntu下Python程序出现错误qt.qpa.plugin: Could not load the Qt platform plugin xcb解决方法

Ubuntu16.04下Python程序出现错误qt.qpa.plugin: Could not load the Qt platform plugin xcb解决方法_zhanghm1995的博客-CSDN博客

远程调试 qt.qpa.xcb: could not connect to display, echo DISPLAY为空[已解决]_功夫小象的博客-CSDN博客

参考上述连接,我遇到两种情况

第一种情况:export QT_DEBUG_PLUGINS=1,如果提示缺少动态链接库,具体可参考以下方法

This application failed to start because it could not find or load the Qt platform plugin “xcb“_weixin_43912749的博客-CSDN博客icon-default.png?t=M666https://blog.csdn.net/weixin_43912749/article/details/122330815?spm=1001.2014.3001.5501第二种情况报错:

qt.qpa.xcb: could not connect to display :xxx:0.0
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.

说明此时不缺少动态链接库,而是连接不上设置的display,网上很多说把环境变量中的display改成    export DISPLAY=本地IP:0.0,我这里行不通。

这里是基于X11转发的情况,首先查看ssh是否开启X11转发,

grep X11 /etc/ssh/sshd_config

有如下显示,说明已经开启X11转发,此时注意看第二行,说明端口号是从10开始的 

X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#       X11Forwarding no

 因此,设置环境变量如下即可。

export DISPLAY=localhost:10.0

或者,如果vscode中也配置了X11,可以看一下RemoteX11(SSH)的输出,其中包括:

x11 accept: 127.0.0.1,则也可以设置为:export DISPLAY=127.0.0.1:10.0,但是注意,后面的端口号都是10.0,不是0.0

如何你的linux系统安装了X11转发的相关软件,如下,则可以在终端直接输入:xclock,验证是否成功。

sudo yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock

也可以用以下python代码运行,验证QT程序是否可运行。

(base) user@server1:~$ python
Python 3.9.7 (default, Sep 16 2021, 13:09:58)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt5.QtWidgets import QApplication, QLabel
>>> app = QApplication([])

没有报错即修改成功。

附上如何在SSH中直接开启X11的连接,可供参考。

 在SSH会话中如何实现 X11 Forwarding_dingdingfish的博客-CSDN博客_x11forwarding服务器X11图形界面转发配置——全网最简教程_痴澳超的博客-CSDN博客_x11转发配置

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值