无法在Windows

时间:2017-03-09 20:01:45

标签: python qt pyqt qml qtmultimedia

我正在尝试学习PyQt5 + qml,到目前为止我尝试的所有工作都很好,但是当我尝试将QtMultimedia导入我的qml文件时遇到了以下错误:

  无法为模块“QtMultimedia”加载

插件:无法加载库   d:\ py35venvQt \ LIB \站点包\ 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

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)并运行我的代码。结果是一样的。

1 个答案:

答案 0 :(得分:0)

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