Brak nazwy "QApplication" w module " PyQt5.Błąd QtWidgets w Pylint
Napotkanie tego problemu W VS Code podczas próby nauczenia się PyQt5, "No name' QApplication 'in module' PyQt5.QtWidgets'", "No name' QWidget 'w module' PyQt5.QtWidgets""
Nie jestem pewien, czy to problem z pylintami, czy coś innego. Potwierdziłem, że PyQt5 jest zainstalowany z listą pip3, ale nie mogę zrozumieć problemu.import sys
from PyQt5.QtWidgets import QApplication, QWidget
def app():
my_app = QApplication(sys.argv)
w = QWidget()
w.setWindowTitle("Test")
w.show()
sys.exit(my_app.exec_())
app()
Spodziewałbym się, że ten błąd nie będzie wyświetlany, ale uniemożliwia mi uruchamianie rzeczy w kodzie VS. Wszelka pomoc lub sugestie doceniam to.
7 answers
Rozgryzłem problem, najwyraźniej Pylint doesn't load any C extensions by default, because those can run arbitrary code.
więc odkryłem, że jeśli utworzysz plik systemowy w katalogu projektu o nazwie .pylintrc
plik rc może dodać ten pakiet do białej listy, aby przestać wyrzucać błędy, dodając następujący kod w pliku rc extension-pkg-whitelist=PyQt5
. Więc zasadniczo problemem nie jest PyQt5, to był linter rzucający fałszywe błędy z tego powodu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-23 23:18:27
Myślę, że najprostszym sposobem na usunięcie błędów importowania pakietów jest wejście w Ustawienia JSON vscode za pomocą Ctrl + Shift + P, wyszukaj "ustawienia" i wybierz Preferences: Open Settings (JSON)
i dodanie tej linii do dict:
"python.linting.pylintArgs": ["--extension-pkg-whitelist=PyQt5"]
Jeśli chcesz dodać kilka pakietów, po prostu dodaj je z pierwszym, oddzielonym przecinkiem w ten sposób:
"python.linting.pylintArgs": ["--extension-pkg-whitelist=PyQt5,otherPkg"]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-28 19:39:31
Mogę odtworzyć błędy PyLint w Visual Studio Code w Windows 10(Python 3.7.3, PyQt 5.11.3, PyLint 2.3.1). Chociaż nie przeszkadza mi to w uruchomieniu kodu, jak sugeruje pytanie.
Z pewnością jest to problem z linterem, a nie instalacją PyQt5 czy czymkolwiek innym, ponieważ PyLint przestaje narzekać, gdy zmienia kod na następujący odpowiednik:
from PyQt5 import QtWidgets
app = QtWidgets.QApplication([])
window = QtWidgets.QWidget()
window.setWindowTitle("Test")
window.show()
app.exec_()
Znacząca różnica polega na tym, że ten kod importuje moduł QtWidgets
jako całość, a nie indywidualną klasę obiekty w nim zdefiniowane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-23 23:18:40
Znalazłem rozwiązanie łatwe, wystarczy użyć QApplication w ten sposób:
my_app = QtWidgets.QApplication(sys.argv)
I nie Importuj z PyQt5
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-02 06:47:51
Jeśli używasz VSCode, przejdź do "Plik" > "Referencje" > "Ustawienia" > kliknij tę ikonę w lewym górnym rogu:
("Ustawienia.JSON "plik zostanie otwarty) > dodaj te linie do ustawień".json": {]}
{
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=PyQt5"
]
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-04 14:54:34
Zgodnie z sugestią @wolfeyes90 TUTAJ
Utwórz plik w katalogu głównym projektu o nazwie .pylintrc
o treści:
extension-pkg-whitelist=PyQt5
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-04 11:13:48
Może ten błąd o instalacji PyQt5
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-19 11:18:13