You are not logged in.
Hey all,
Long time Linux user (~20 years) but relatively recent convert to Arch.
I'm writing an application that uses the PyQt5 multimedia libraries and runs within a virtual environment.
As a test, I downloaded the sample media player from https://github.com/baoboa/pyqt5/tree/ma … diawidgets and attempted to run it having installed what I thought were all the relevant libraries, however, it fails with the following error:
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
Exporting the QT_DEBUG_PLUGINS=1 and re-running shows a load of dependencies being loaded, and then it fails with
Got keys from plugin meta data ("gstreamermediaplayer")
Cannot load library /home/pf/.virtualenvs/playIt/lib/python3.6/site-packages/PyQt5/Qt/plugins/mediaservice/libgstmediaplayer.so: (libqgsttools_p.so.1: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/home/pf/.virtualenvs/playIt/lib/python3.6/site-packages/PyQt5/Qt/plugins/mediaservice/libgstmediaplayer.so" : "Cannot load library /home/pf/.virtualenvs/playIt/lib/python3.6/site-packages/PyQt5/Qt/plugins/mediaservice/libgstmediaplayer.so: (libqgsttools_p.so.1: cannot open shared object file: No such file or directory)"
running LDD against libgstmediaplayer shows that, sure enough, libqgsttools_p.so.1 is missing, however, I can't find this file in any libraries within Arch.
RPM find shows that it should probably be in the QT5-Multimedia packages (https://rpmfind.net/linux/rpm2html/sear … ols_p.so.1), but it's not listed at https://www.archlinux.org/packages/extr … dia/files/
Is this is packaging error in Arch, or am I holding it wrong?
Thanks in advance.
ProfFalken
Offline
OK, further investigation shows that this is definitely something to do with the virtualenv
If I install the full Python-qt5 package from pacman and run the sample outside my virtualenvironment, it works, however inside the virtualenv (using pip install PyQt5) it still fails.
For now, I can run it outside the virtualenv for testing, but I need to package this code up and run it via a Virtualenv at some point so if anyone knows how to solve this I'd be very greatful!
I've seen vext.qt5 which should allow you to use system qt5 inside a venv, but I'm having issues with that compiling, so... <shrug/>
Offline
I don't understand why pypi ships a full copy of qt inside its pyqt5 package and then relies on a library from the systems qt5 package.. It should probably work again when pypi also updates to version 5.10.
It works perfectly fine if you install python-pyqt5 and create your venv with --system-site-packages.
Last edited by progandy (2018-01-03 11:29:20)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
I can't find this file in any libraries within Arch.
Really?
$ pacman -Fs libqgsttools_p.so.1
extra/qt5-multimedia 5.9.3-1
usr/lib/libqgsttools_p.so.1
But Progandy is correct above as the the actual problem. PyQt5 has always been a bit of a pain on the Cheese Shop, it's only fairly recently been available at all, and even now it's not 100%. I had struggled with this a bit for distributing a python tool of mine that uses qt5 for mac and windows users - it all works now, but my program doesn't need much from qt5. But I never struggled on linux: the system-wide pyqt5 libraries have always just worked.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
proffalken wrote:I can't find this file in any libraries within Arch.
Really?
$ pacman -Fs libqgsttools_p.so.1 extra/qt5-multimedia 5.9.3-1 usr/lib/libqgsttools_p.so.1
Arch now provides version 5.10 where this file is missing.
This should be the relevant change:
https://github.com/qt/qtmultimedia/comm … 835f1b26e3
In 5.10 "libqgsttools_p.so.1" has been "fixed" and is now compiled as an internal library with the name
/usr/lib/libQt5MultimediaGstTools.so
Last edited by progandy (2018-01-03 12:20:10)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Crap, sorry about that. I don't frequently update the files databases (-Fy). If I fail to find a file I'm looking for I update the db and try again, but if I do find it I often don't think to update to check if it's still there.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline