Python 派林罐';找不到QWidget和QApplication

Python 派林罐';找不到QWidget和QApplication,python,pyqt,pyqt5,pylint,Python,Pyqt,Pyqt5,Pylint,我刚开始学习pyqt5。我写了这个hello world应用程序,它很有效。但pylint给出了“E0611:模块'PyQt5.qtwidts'中没有名称'QWidget',对于QApplication也是如此。这是派林的某种错误吗 import sys from PyQt5.QtWidgets import (QApplication, QWidget) app = QApplication(sys.argv) window = QWidget() window.setGeometry(50,

我刚开始学习pyqt5。我写了这个hello world应用程序,它很有效。但pylint给出了“E0611:模块'PyQt5.qtwidts'中没有名称'QWidget',对于QApplication也是如此。这是派林的某种错误吗

import sys
from PyQt5.QtWidgets import (QApplication, QWidget)
app = QApplication(sys.argv)
window = QWidget()
window.setGeometry(50, 50, 500, 300)
window.setWindowTitle('Hello, world')
window.show()
sys.exit(app.exec_())

我在此页面中找到了解决方案:

因此,在terminal as中使用它(对于main.py):

(Ubuntu)我已经创建了一个
~/.pylintrc
文件并添加到那里

pylint main.py --extension-pkg-whitelist=PyQt5
更方便。现在pylint甚至在我的VisualStudio代码编辑器中也应用了这个配置

或在VSCode设置中:

[MASTER]
extension-pkg-whitelist=PyQt5

这主要是由Qt5和Pylint的组合引起的。因此,如果您正在使用VsCode,请在工作区设置中更新它

"python.linting.pylintArgs": [
    "--extension-pkg-whitelist=PyQt5"
],

执行:
pylint your_file.py-rn--扩展名pkg whitelist=PyQt5--disable=黑名单名称、无效名称、缺少docstring
您了解错误原因吗?链接论坛声明pylint默认情况下不加载任何C扩展。我对
pyqt
的内部工作机制不够熟悉,无法理解这意味着什么。。。但它似乎是某种特定于C/C++python包装器的安全特性?如有可能,请详细说明此错误的原因@RTbecard由于pyqt是用C编写的,pylint无法像使用普通python代码一样对其进行内省,因此它错误地得出结论,认为模块中不存在该名称。如果要保留默认的linting规则,则需要再添加两个PylIntarg,“--disable=all”,“--enable=F,E,不可访问,重复键,不必要的分号,未分配的全局变量,未使用的变量,二进制运算异常,错误的格式字符串,字符串中的异常反斜杠,错误的打开模式”,因为通过在pylintArgs中指定值,这(至少在Visual Studio代码中)。请参阅默认Pylint规则一节的结尾。谢谢,你是一个了不起的人。你能确认建议的修复程序对VSCode有效吗。我在VSCode的默认配置末尾的设置中插入了这一点,我没有单击“添加配置”,而只是键入了一个“,“在退出配置并添加建议的白名单代码后,我重新启动了VSCode,但我得到了相同的错误。@Echeban,它在2017年起作用。但现在我不确定,我不再使用Qt了。我可以确认它在VSCode 2019上有效。在上次的
]
之后,我添加了这个
,“python.linting.pylintArgs”:[“-rn--extension pkg whitelist=PyQt5--disable=黑名单名称,无效名称,缺少docstring”]
"python.linting.pylintArgs": [
    "--extension-pkg-whitelist=PyQt5"
],
"python.linting.pylintArgs": [
    "--extension-pkg-whitelist=PyQt5"
],