Sergey
Sergey

Reputation: 441

pylint can't find QWidget and 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_())

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]

Upvotes: 23

Views: 24120

Answers (4)

Winand
Winand

Reputation: 2433

If you switch to new pylint tool extension in VS Code then add the following setting to your settings.json:

{
    "pylint.args": [
        "--extension-pkg-whitelist=PyQt5"
    ],
}

Alternatively you can set this in your pyproject.toml file:

[tool.pylint.main]
extension-pkg-whitelist = ["PyQt5"]

Upvotes: 2

peerpressure
peerpressure

Reputation: 424

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"
],


Upvotes: 0

slavugan
slavugan

Reputation: 1482

(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"
],

Upvotes: 28

AOK
AOK

Reputation: 43

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

Upvotes: 3

Related Questions