无法在 Windows 上的 PyQt 5 中导入 QtMultimedia

Cur*_*984 5 python qt pyqt qml qtmultimedia

我正在尝试学习 PyQt5 + qml,到目前为止我尝试过的一切都很好,但是在尝试将 QtMultimedia 导入我的 qml 文件时遇到了一个障碍,导致以下错误:

无法为模块“QtMultimedia”加载插件:无法加载库 D:\py35venvQt\lib\site-packages\PyQt5\Qt\qml\QtMultimedia\declarative_multimedia.dll:找不到指定的模块。

主.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

}
Run Code Online (Sandbox Code Playgroud)

主文件

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")
Run Code Online (Sandbox Code Playgroud)

如果没有 QtMultimedia 导入,一切正常,我也尝试了所有可能的 QtMultimedia 版本(5.0、5.1 等)。此外,dll确实存在于正确的路径中。

在网上搜索解决方案时,我发现一些帖子说 PyQt5 不支持 QtMultimedia,但我认为这些帖子太旧了。

如果有人对这种情况有所了解,我将不胜感激,谢谢。

编辑:Python 版本 3.5.2 PyQt 版本 5.8。PyQt安装过程:新建virtualenv ->pip install pyqt5

Edit2:尝试重新安装到全新的虚拟环境,pip3 install pyqt5但仍然出现相同的错误。

Edit3:根据http://www.dependencywalker.com在 declarative_multimedia.dll 所在的目录中找不到以下 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 安装到我正确的 python 3.5 安装中(没有 virtualenv)并运行我的代码。结果是一样的。

sla*_*gan 1

我在 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