【发布时间】:2020-10-11 11:10:32
【问题描述】:
当我尝试启动程序时遇到这些错误:
无法为模块加载插件,无法将类型安装到受保护的模块中
平台:
Python 3.8
PyQt5 5.15.0
Visual Studio 社区 2019
Windows 10 专业版 1909
主要 python 文件(整个事情几乎就是这里的示例:https://codeloop.org/pyqt5-creating-first-window/)
import numpy
import os
import sys
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtWidgets import QApplication
def main():
app =QApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load(os.path.join(os.path.dirname(__file__), "MainApp.qml"))
if not engine.rootObjects():
return -1
return app.exec_()
if __name__ == '__main__':
main();
对应的QML文件“MainApp.qml”:
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import QtQuick 2.15
Window {
visible:true
width:600
height:400
color:"yellow"
title: "PyQt5 QML Window"
Button {
text: "Something"
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
}
}
不使用 QtQuick.Controls 中的任何东西,它可以工作,但是一旦我添加按钮,它就会产生这些错误:
QQmlApplicationEngine failed to load component
file:///C:/Users/elano/Source/Repos/Projekt-1-SS2020/Projekt-1-SS2020/MainApp.qml:15:5: Type Button unavailable
file:///C:/Users/elano/vpqt/lib/site-packages/PyQt5/Qt/qml/QtQuick/Controls.2/qmldir: plugin cannot be loaded for module "QtQuick.Controls": Cannot install type 'VerticalHeaderView' into protected module 'QtQuick.Controls' version '2'
<Unknown File>: Cannot install type 'HorizontalHeaderView' into protected module 'QtQuick.Controls' version '2'
<Unknown File>: Cannot install element 'SplitHandle' into protected module 'QtQuick.Controls' version '2'
...
它尝试查找的文件 (qmldir) 确实存在,并且包含以下内容:
module QtQuick.Controls
plugin qtquickcontrols2plugin
classname QtQuickControls2Plugin
depends QtQuick.Templates 2.5
designersupported
有人知道这里发生了什么吗?需要更多信息吗?
【问题讨论】: