在Windows上使用PyQt 5无法导入QtMultimedia

5
我正在尝试学习PyQt5 + qml,到目前为止,我尝试的所有内容都运行良好,但是当我尝试将QtMultimedia导入我的qml文件时,出现了以下错误:

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

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确实存在于正确的路径中。

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

如果有人能为这种情况提供一些帮助,我将不胜感激, 谢谢。

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

编辑2:尝试重新安装到完全新的虚拟环境,使用pip3 install pyqt5仍然出现相同的错误。

编辑3:根据 http://www.dependencywalker.com ,声明式多媒体.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安装中(没有虚拟环境),然后运行我的代码。结果是一样的。


我在PyQt5中使用了QML多媒体,没有遇到任何问题。 - eyllanesc
@eyllanesc 在Windows上吗?如果是,那就是好消息,说明我的设置有问题。尽管我不知道是什么问题... - Curtwagner1984
我的操作系统是Linux,为了改进您的帖子,您可以展示您用于PyQt安装的过程。 - eyllanesc
@eyllanesc 我创建了一个新的虚拟环境,并使用 pip install pyqt5 安装了它,就这样。 - Curtwagner1984
这似乎是一个真正的痛点。使用编辑器运行脚本可以正常工作,但从命令行运行却不行。在Windows 10x64 SP1上,使用pyqt5.6.0、qt5.6.2和Conda 4.4.11显示相同的问题。环境路径设置为C:\Python\Anac2\Lib\site-packages和C:\Python\Qt590。 - ZF007
显示剩余2条评论
2个回答

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后的路径。

-1

也许你应该使用PyQt而不是PySide


问题中明确说明我正在使用PyQt5。 - Curtwagner1984

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接