WSL2 и PySide6

Я пытаюсь запустить простое приложение PySide6 на WSL2.

$ python3 -m venv venv
$ . ./venv/bin/activate
$ pip install PySide6
$ sudo apt install libopengl0 libegl1

Мой код:

import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel
                                                     
if __name__ == "__main__":
    app = QApplication(sys.argv)
    label = QLabel("Hello World", alignment=Qt.AlignCenter)
    label.show()
    sys.exit(app.exec_())

Когда я запускаю, я получаю ошибку

$ export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0\n
$ python main.py
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.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.

[1]    2557 abort      python main.py

Можно ли запускать приложения PySide с помощью WSL2? Если да, то как?


person Rodrigo    schedule 04.03.2021    source источник
comment
попробуйте установить xvfb sudo apt install xvfb, а затем: xvfb-run python main.py   -  person eyllanesc    schedule 04.03.2021


Ответы (1)


1, X-сервер https://techcommunity.microsoft.com/t5/windows-dev-appconsult/running-wsl-gui-apps-on-windows-10/ba-p/1493242

i) установить https://sourceforge.net/projects/vcxsrv/

ii) export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"

iii) запустите xev для проверки изображения

iv) включите команду ii в конец файла /etc/bash.bashrc:

2, sudo apt install pyside2-tools libopengl-dev

3, запустите python3 xxx.py, это сработало, но все еще есть проблема. выход:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-dev'
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
person Aioc    schedule 16.03.2021