21
votes
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_())

I just started to learn pyqt5. I wrote this hello world app, which works. But pylint gives "E0611:No name 'QWidget' in module 'PyQt5.QtWidgets'" and same for QApplication. Is it some kind of bug in pylint?

pylint --version
No config file found, using default configuration
pylint 1.7.2, 
astroid 1.5.3
Python 3.5.2 (default, Aug 18 2017, 17:48:00) 
[GCC 5.4.0 20160609]
3
execute: pylint your_file.py -rn --extension-pkg-whitelist=PyQt5 --disable=blacklisted-name,invalid-name,missing-docstring - eyllanesc

3 Answers

28
votes

(Ubuntu) I've created a ~/.pylintrc file and added there

[MASTER]
extension-pkg-whitelist=PyQt5

It is more convenient. And now pylint applies this configuration even in my Visual Studio Code editor.

Or in VSCode settings:

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

I found solution in this page: http://python.6.x6.nabble.com/PyQt-and-pylint-with-quot-no-name-in-module-quot-td5217888.html

so using it in terminal as (for main.py):

pylint main.py --extension-pkg-whitelist=PyQt5
1
votes

It is mostly caused by the combination of Qt5 and Pylint. So if you are using VsCode update it in the workspace setting.

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