【问题标题】:Windows forwarding PyQt5 GUI from PyCharmWindows 从 PyCharm 转发 PyQt5 GUI
【发布时间】: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

提前感谢您的任何指导。

【问题讨论】:

标签: python pycharm pyqt5 x11-forwarding


【解决方案1】:

我找到了解决我自己问题的方法,但这不一定是理想的。如果程序从 PyCharm 运行并设置了上述环境变量并且我已经从终端使用ssh -Y 连接到远程主机,GUI 窗口将显示没有错误。如果我从终端终止 ssh 连接,我将无法从 PyCharm 执行程序。

这个解决方法目前对我有用,我想发布这个以防其他人将来偶然发现这个问题,但如果有人能帮助我理解为什么这个解决方法有效,或者如何解决,我将不胜感激无需从终端打开单独的 ssh 连接即可解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-20
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2014-09-17
    • 2020-08-03
    相关资源
    最近更新 更多