gpt4 book ai didi

python - 为什么在 python 中没有导入就失败了

转载 作者:太空狗 更新时间:2023-10-29 21:56:55 25 4
gpt4 key购买 nike

我是新手,刚开始学习 Python 编程:

import sys
from PyQt5 import QtWidgets

if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)

mainWindow = QtWidgets.QMainWindow()
mainWindow.show()

sys.exit(app.exec_())

当我运行上面的代码时,一切正常。但是当我运行下面的代码时,它失败并显示以下错误消息:app = PyQt5.QtWidgets.QApplication(sys.argv)AttributeError: 'module' 对象没有属性 'QtWidgets'

import sys
import PyQt5
if __name__ == "__main__":
app = PyQt5.QtWidgets.QApplication(sys.argv)

mainWindow = PyQt5.Qtwidgets.QmainWindow()
mainWindow.show()

sys.exit(app.exec_())

顺便说一句,我的Python版本是2.7,我使用的是Qt5库,我的操作系统是OpenSUSE 13.2,当然是Linux的一个发行版。

最佳答案

PyQt5 部分只是为一组模块提供了一个命名空间。它本身不包含任何内容,因此您不能直接从中导入任何内容。

这是一个深思熟虑的设计决定,这样做是有充分理由的。包中可能总共有三十个或更多模块,因此每次导入 PyQt5 时加载它们全部 将是一笔沉重的前期成本。因此,我们的目的是只支付加载您实际需要的模块的费用。

但是,有时您确实想要一次加载所有模块。例如,在 python 交互式 session 中进行实验时,能够非常方便地执行此操作。事实上,PyQt 提供了一个特殊的模块来做这件事:

>>> from PyQt5 import Qt
>>> Qt.QWidget
<class 'PyQt5.QtWidgets.QWidget'>
>>> Qt.QObject
<class 'PyQt5.QtCore.QObject'>
>>> Qt.QNetworkCookie
<class 'PyQt5.QtNetwork.QNetworkCookie'>

关于python - 为什么在 python 中没有导入就失败了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com