【发布时间】:2019-10-03 03:25:45
【问题描述】:
我使用 PyQt5 开发了一个简单的 GUI,我想使用远程主机部署工具在 PyCharm 的远程服务器上运行它。下面提供了用于显示空白窗口的简单 GUI 的源代码。
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
如果我使用 X11 转发 (-Y) 从终端 ssh 进入此主机并运行 GUI (python3 myapp.py),程序运行正常,并且按预期显示空白窗口。但是,如果我从 PyCharm 运行程序(在远程主机上使用相同的 Python 解释器),我会收到以下错误:
qt.qpa.plugin: 无法加载“”中的 Qt 平台插件“xcb”,即使它已找到。
此应用程序无法启动,因为无法初始化 Qt 平台插件。重新安装应用程序可能会解决此问题。
可用的平台插件有:eglfs、linuxfb、minimal、minimalegl、offscreen、vnc、wayland-egl、wayland、wayland-xcomposite-egl、wayland-xcomposite-glx、webgl、xcb。
在 PyCharm 中,我在远程主机上使用相同的 Python 解释器运行脚本,该解释器在上述成功演示中使用ssh -Y 在终端中测试过。我还在设置>构建、执行、部署>控制台>Python控制台>环境变量中设置了PyCharm中的环境变量。当我 ssh 进入远程主机 (localhost:10.0) 时,我确保 DISPLAY 环境变量与 DISPLAY 变量匹配。我尝试将平台插件更改为其他推荐的插件之一(设置qt_qpa_platform 环境变量),虽然某些平台插件不会产生上述错误,但不会出现预期的窗口。
我看到过类似的帖子出现此错误,但是我认为重新安装 pyqt 或移动库路径的典型推荐解决方案不适用于这种情况,因为程序可以在 PyCharm 之外运行。我认为 PyCharm 运行配置环境变量一定有问题,但我相信我设置正确:
DISPLAY=localhost:10.0
PYTHONUNBUFFERED=1
QT_DIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
QTLIB=/usr/lib64/qt-3.3/lib
提前感谢您的任何指导。
【问题讨论】:
-
使用命令:export DISPLAY=:0 in terminal stackoverflow.com/questions/64085911/…
标签: python pycharm pyqt5 x11-forwarding