Python 使用PyQt5的QtQuickControls 2.0

Python 使用PyQt5的QtQuickControls 2.0,python,pyqt,pyqt5,qtquickcontrols,qtquickcontrols2,Python,Pyqt,Pyqt5,Qtquickcontrols,Qtquickcontrols2,我安装了virtualenv并安装了pyqt5(pyqt5-5.7-cp35-cp35m-manylinux1_x86_64.whl): 我创建了一个basic.qml文件: import QtQuick 2.7 import QtQuick.Controls 2.0 Rectangle { width: 300 height: 100 color: "red" } 并尝试将其加载到我的python代码中: import sys from PyQt5.QtCore i

我安装了virtualenv并安装了pyqt5(pyqt5-5.7-cp35-cp35m-manylinux1_x86_64.whl):

我创建了一个basic.qml文件:

import QtQuick 2.7
import QtQuick.Controls 2.0

Rectangle {
    width: 300
    height: 100
    color: "red"
}
并尝试将其加载到我的python代码中:

import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQuick import QQuickView

if __name__ == '__main__':
    myApp = QApplication(sys.argv)

    view = QQuickView()
    view.setSource(QUrl('basic.qml'))
    view.show()

    sys.exit(myApp.exec_())
它失败了

file:///[...]/main.qml:2:1: plugin cannot be loaded for module "QtQuick.Controls": Cannot load library /[virtualenv]/lib/python3.5/site-packages/PyQt5/Qt/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.so: (libQt5QuickTemplates2.so.5: Can't open shared object file: File or directory not found) 
     import QtQuick.Controls 2.0 
     ^

Process finished with exit code 0
我查过了。它抱怨的这个文件实际上并不存在。但是我如何安装它呢?PyQt5是否支持QtQuickControls2


如果我将basic.qml中的导入从
import QtQuick.Controls 2.0
切换到
import QtQuick.Controls 1.2
,它会工作。但是我想使用新控件。

这看起来像PyQt5中的一个bug。包同时缺少
libQt5QuickTemplates2.so
libQt5QuickControls2.so

希望PyQt 5.7包中包含的Qt 5.7版本和Qt.io上提供的官方Qt 5.7版本以完全二进制兼容的方式构建,一种可能是从Qt.io下载并安装Qt 5.7,并将缺少的库复制到virtualenv中。例如:

$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickTemplates2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib
$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickControls2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib

你能告诉我们你是如何创建虚拟环境的吗?列出您为安装PyQt5等而发出的精确命令,以便我们检查您所做的是否正确。谢谢。我编辑了这篇文章。我找不到任何bug追踪器,所以我在PyQt邮件列表上发布了这个问题:应该在下一版本中修复:
$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickTemplates2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib
$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickControls2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib