我正在努力学习PyQt5 + qml,到目前为止,我尝试的一切都很好,但是当我试图将QtMultimedia导入到qml文件时遇到了一个障碍,导致以下错误:
无法为模块“D:\py35venvQt\lib\site-packages\PyQt5\Qt\qml\QtMultimedia\declarative_multimedia.dll:”加载插件:无法加载库QtMultimedia,无法找到指定的模块。
main.qml:
import QtQuick 2.8
import QtQuick.Window 2.2
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.1
import QtMultimedia 5.6
Window {
id: root
visible: true
title: 'my pyqt app'
width: 1280
height: 720
}main.py
if __name__ == '__main__':
def handleStatusChange(status):
if status == QQuickView.Error:
errors = appLabel.errors()
if errors:
print (errors[0].description())
myApp = QApplication(sys.argv)
appLabel = QQuickView()
appLabel.statusChanged.connect(handleStatusChange)
model = models.ActorModel(DB_PATH)
ctxt = appLabel.rootContext()
ctxt.setContextProperty('myModel', model)
appLabel.setSource(QUrl('./qml/main/main.qml'))
try:
sys.exit(myApp.exec_())
except:
print("Exiting")如果没有QtMultimedia导入,一切都可以正常工作,我还尝试了所有可能的QtMultimedia版本(5.0、5.1等)。此外,dll 在正确的路径中确实存在。
在网上搜索解决方案时,我发现一些帖子说QtMultimedia在PyQt5中不受支持,尽管我认为这些帖子太老了。
如果有人能对这种情况有所了解,我会很感激的,谢谢。
编辑:PythonVersion3.5.2 PyQt版本5.8。PyQt安装过程:新的虚拟主机-> pip install pyqt5
Edit2:尝试使用pip3 install pyqt5重新安装到一个全新的虚拟环境,但仍然得到相同的错误。
Edit3:根据http://www.dependencywalker.com,在dir中找不到以下declarative_multimedia.dll:
QT5MULTIMEDIA.DLL QT5QUICK.DLL QT5GUI.DLL QT5QML.DLL QT5CORE.DLL QT5MULTIMEDIAQUICK_P.DLL
除了QT5MULTIMEDIAQUICK_P.DLL之外,它们都存在于\Lib\site-packages\PyQt5\Qt\bin目录中。
QT5MULTIMEDIAQUICK_P.DLL根本不存在。
我尝试将所有丢失的文件复制到\Lib\site-packages\PyQt5\Qt\qml\QtMultimedia中,看看是否会有任何不同。但事实并非如此。
我还尝试将PyQt 5安装到我正确的python3.5安装中(没有虚拟环境)并运行我的代码。结果是一样的。
发布于 2017-11-15 19:35:53
我在Ubuntu上也有类似的问题,我通过添加环境变量LD_LIBRARY_PATH=/home/slav/Apps/Qt5.9.2/5.9.2/gcc_64/lib来解决我的问题。
"/home/slav/Apps/Qt5.9.2/5.9.2/gcc_64/lib“在这里我已经用QtInstaller安装了Qt
发布于 2021-08-26 09:30:19
也许你应该用pyqt而不是pyside
https://stackoverflow.com/questions/42704417
复制相似问题