Я разработал простой графический интерфейс с использованием PyQt5, который я хотел бы запустить на удаленном сервере из PyCharm с помощью инструментов развертывания удаленного хоста. Исходный код простого графического интерфейса для отображения пустого окна приведен ниже.
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) и запустил графический интерфейс (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
. Я также устанавливаю переменные среды в PyCharm в разделе Настройки ›Сборка, Выполнение, Развертывание› Консоль ›Консоль Python› Переменные среды. Я убедился, что переменная среды DISPLAY соответствует переменной DISPLAY при подключении ssh к удаленному хосту (localhost: 10.0). Я попытался изменить плагин платформы на один из рекомендованных (установка переменной среды 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
Заранее благодарим за любые рекомендации.