You are not logged in.

#1 2018-01-03 10:07:44

proffalken
Member
Registered: 2018-01-03
Posts: 2

PyQt5 Virtualenv Missing library libqgsttools_p.so.1

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

#2 2018-01-03 11:14:59

proffalken
Member
Registered: 2018-01-03
Posts: 2

Re: PyQt5 Virtualenv Missing library libqgsttools_p.so.1

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

#3 2018-01-03 11:28:06

progandy
Member
Registered: 2012-05-17
Posts: 5,184

Re: PyQt5 Virtualenv Missing library libqgsttools_p.so.1

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

#4 2018-01-03 11:55:24

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,449
Website

Re: PyQt5 Virtualenv Missing library libqgsttools_p.so.1

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

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

#5 2018-01-03 12:17:50

progandy
Member
Registered: 2012-05-17
Posts: 5,184

Re: PyQt5 Virtualenv Missing library libqgsttools_p.so.1

Trilby wrote:
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

#6 2018-01-03 12:31:49

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,449
Website

Re: PyQt5 Virtualenv Missing library libqgsttools_p.so.1

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

Board footer

Powered by FluxBB