I was working on a project called RaspMedia(my project folder's name is also that). I combined QML and python together using PyQt5.
I've tried to import QtMultimedia using the import statement import QtMutimedia 5.14
in my main.qml file.
This is my complete python code.
main.py
from PyQt5.QtCore import QObject, QUrl,QMimeDatabase,QVariant,QFileInfo,QMetaObject,Q_ARG
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQml import QQmlApplicationEngine
import os
import sys
home = os.environ["HOME"]+"/"
print(home)
currentPath = home
def getList(directory:type=str):
a = os.popen("ls '"+directory+"'")
b = []
for i in a:
b.append(i.replace("\n", ""))
return b
def appendToList(mainList:type=list):
for i in mainList:
path = currentPath + i
mime = QMimeDatabase().mimeTypeForFile(QFileInfo(path)).name()
if mime == "inode/directory":
anObject = {"type":"folder", "name":i, "path":path }
QMetaObject.invokeMethod(win, "append", Q_ARG(QVariant, anObject))
print(anObject)
DIR_PATH = os.path.dirname(os.path.realpath(__file__))
if __name__ == '__main__':
file = os.path.join(DIR_PATH, "main.qml")
url = QUrl.fromLocalFile(file)
myApp = QApplication(sys.argv)
engine = QQmlApplicationEngine()
context = engine.rootContext()
context.setContextProperty("main", engine)
engine.load(url)
win = engine.rootObjects()[0]
appendToList(getList(home))
win.show()
sys.exit(myApp.exec_())
Running it gave me error following
file:///home/newtron/RaspMedia/main.qml:5:1: plugin cannot be loaded for module "QtMultimedia": Cannot load library /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/libdeclarative_multimedia.so: (libQt5MultimediaQuick.so.5: cannot open shared object file: No such file or directory)
On the same side pyside smoothly ran script without any errors.
This is the complete output of ldd /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/libdeclarative_multimedia.so
linux-vdso.so.1 (0x00007fff65783000)
libQt5MultimediaQuick.so.5 => not found
libQt5Multimedia.so.5 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libQt5Multimedia.so.5 (0x00007fe0d8bdc000)
libQt5Quick.so.5 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libQt5Quick.so.5 (0x00007fe0d84b1000)
libQt5Gui.so.5 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libQt5Gui.so.5 (0x00007fe0d7b9e000)
libQt5QmlModels.so.5 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libQt5QmlModels.so.5 (0x00007fe0d7904000)
libQt5Qml.so.5 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libQt5Qml.so.5 (0x00007fe0d72b7000)
libQt5Network.so.5 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libQt5Network.so.5 (0x00007fe0d6f0c000)
libQt5Core.so.5 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libQt5Core.so.5 (0x00007fe0d6732000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007fe0d64a6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe0d6287000)
libpulse-mainloop-glib.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-mainloop-glib.so.0 (0x00007fe0d6082000)
libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007fe0d5e32000)
libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fe0d5b1b000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe0d5792000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe0d53f4000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe0d51dc000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe0d4deb000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe0d4bce000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe0d49c6000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe0d47c2000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fe0d4577000)
libicui18n.so.56 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libicui18n.so.56 (0x00007fe0d40de000)
libicuuc.so.56 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libicuuc.so.56 (0x00007fe0d3d26000)
libicudata.so.56 => /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/qml/QtMultimedia/../../lib/libicudata.so.56 (0x00007fe0d2343000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fe0d2141000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe0d9143000)
libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fe0d1f10000)
libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fe0d1c5a000)
libpulsecommon-11.1.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so (0x00007fe0d19dc000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fe0d178f000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fe0d151d000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fe0d1247000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fe0d1015000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fe0d0e11000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fe0d0c06000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fe0d08ce000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fe0d06a6000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fe0d0422000)
libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007fe0d0218000)
libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007fe0cff9f000)
libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007fe0cfd99000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fe0cfb95000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fe0cf97a000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fe0cf776000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fe0cf570000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fe0cf34a000)
liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fe0cf12e000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fe0cee12000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fe0cebf8000)
libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007fe0ce981000)
libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007fe0ce778000)
libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007fe0ce54d000)
libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007fe0ce2a4000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fe0ce08f000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fe0cde7a000)
Do I need to install any
Software Info
- PyQt version: 5.14.1
- Qt version:5.14.1
- Python version:3.6
- os: Ubuntu 18.04