Quand j'ai essayé d'utiliser PyQt5 avec wsl2, j'ai eu un problème, j'ai donc pris une note. L'article japonais disait qu'apt install résoudrait le problème, mais je ne l'ai pas fait.
――Je veux utiliser PyQt5
$ 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, webgl, xcb.
Aborted
sudo apt install libxkbcommon-x11-0
Cela ne suffisait pas. Ceci est également nécessaire!
Tout d'abord, cherchez où se trouve libqeglfs.so
.
find / -name libqeglfs.so
Tel. Cependant, le temps d'exécution peut être difficile. Par exemple
export QT_DEBUG_PLUGINS=1
Lorsque vous entrez en mode débogage et exécutez le fichier Python cible
Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/path/to/python/bin/platforms" ...
Cannot load library /path/to/python/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libxcb-icccm.so.4: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/path/to/python/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so" : "Cannot load library /home/path/to/python/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libxcb-icccm.so.4: cannot open shared object file: No such file or directory)"
Quelque chose comme ça apparaît vers la fin (le chemin vers Python est réécrit comme chemin / vers / python
).
Si vous trouvez cela https://forum.qt.io/topic/115732/could-not-load-the-qt-platform-plugin-xcb-in-even-though-it-was-found Etc
ldd /path/to/python/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so
Tu devrais le faire. Si c'est difficile à voir, vous pouvez ajouter | grep" not found "
.
Cela vous dira ce qui manque, par exemple,
$ ldd /path/to/python/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so | grep "not found"
libxcb-icccm.so.4 => not found
libxcb-image.so.0 => not found
libxcb-keysyms.so.1 => not found
libxcb-render-util.so.0 => not found
libxcb-xinerama.so.0 => not found
libxcb-icccm.so.4 => not found
libxcb-image.so.0 => not found
libxcb-keysyms.so.1 => not found
libxcb-render-util.so.0 => not found
libxcb-xinerama.so.0 => not found
Parce que c'était
sudo apt install libxkbcommon-x11-0
sudo apt install libxcb-icccm4
sudo apt install libxcb-image0
sudo apt install libxcb-keysyms1
sudo apt install libxcb-render-util0
sudo apt install libxcb-xinerama0
Ensuite, cela a commencé à fonctionner. Toutes nos félicitations.