@Span4ev

VS Code, Python и куча ошибок. Просто Tk() или tk.Tk()?

Здравствуйте. Я учу пайтон, использую vs code. Столкнулся с двумя вариантами вызова фрейма tkinter:
1.
from tkinter import * 
window = Tk()  # пример


2.
import tkinter as tk
window = tk.Tk()


Если вызывать так, то получаю такие ошибки:

Wildcard import tkinter



spoiler

Unused import(s) enum, sys, types, TclError, re, wantobjects, TkVersion, TclVersion, READABLE, WRITABLE, EXCEPTION, EventType, Event, NoDefaultRoot, Variable, StringVar, IntVar, DoubleVar, BooleanVar, mainloop, getint, getdouble, getboolean, Misc, CallWrapper, XView, YView, Wm, Tcl, Pack, Place, Grid, BaseWidget, Widget, Toplevel, Canvas, Checkbutton, Entry, Frame, Label, Listbox, Menu, Menubutton, Message, Radiobutton, Scale, Scrollbar, Text, OptionMenu, Image, PhotoImage, BitmapImage, image_names, image_types, Spinbox, LabelFrame, PanedWindow, NO, FALSE, OFF, YES, TRUE, ON, N, S, W, E, NW, SW, NE, SE, NS, EW, NSEW, CENTER, NONE, X, Y, BOTH, LEFT, TOP, RIGHT, BOTTOM, RAISED, SUNKEN, FLAT, RIDGE, GROOVE, SOLID, HORIZONTAL, VERTICAL, NUMERIC, CHAR, WORD, BASELINE, INSIDE, OUTSIDE, SEL, SEL_FIRST, SEL_LAST, END, INSERT, CURRENT, ANCHOR, ALL, NORMAL, DISABLED, ACTIVE, HIDDEN, CASCADE, CHECKBUTTON, COMMAND, RADIOBUTTON, SEPARATOR, SINGLE, BROWSE, MULTIPLE, EXTENDED, DOTBOX, UNDERLINE, PIESLICE, CHORD, ARC, FIRST, LAST, BUTT, PROJECTING, ROUND, BEVEL, MITER, MOVETO, SCROLL, UNITS and PAGES from wildcard import of tkinter



Если использовать 2 подход, то возникают ошибки:
Module name "12" doesn't conform to snake_case naming style

(решение: "Если вы являетесь пользователем кода Visual Studio и хотите игнорировать это, вы можете добавить в /settings.json:")

wildcard import tkinter pylint

(решение: вы можете добавить в /settings.json:)

В итоге в settings.json я добавляю это:

"python.linting.pylintArgs": [
        "--disable=C0111",
        "--disable=C0103"
    ]


Предыдущие ошибки пропадают, но появляется другая после дебага и запуска окна. Появляется, когда я переключаюсь на другое окно vs code и обратно:

Возникло исключение NameError
name 'tk' is not defined

в этой строке "window = tk.Tk()"

Что использовать, чтобы перестать фиксить ошибки и начать учить пайтон?
Tk() или tk.Tk() ?
И я правильно понял, что эти ошибки не совсем уж прям страшные ошибки (видимо, кроме "Возникло исключение NameError"), а скорее предупреждения и их можно игнорировать, и всё это следствие работы Pylint? Но всё равно как-то неприятно, когда есть какие-то проблемы. Может использовать что-то другое для подсветки ошибок? Что посоветуете?

Что касается основного вопроса, то вроде бы лучше вызывать не всё сразу, и использовать tk.Tk(). Но как быть с

Возникло исключение NameError
name 'tk' is not defined

?
С from tkinter import * такой ошибки нет. В итоге я не учу пайтон, а часами гуглю, как избавиться от этого, как решить эту проблему и т.п.
  • Вопрос задан
  • 875 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
1. Да, это не ошибки,а обычные предупреждения о том, что где-то код написан не соответствует PEP8. Я бы в принципе отключил все варнинги PEP8, они никак не повлияют на подсветку синтаксических и прочих ошибок.
2. Лучше всё же не импортировать содержимое модуля через *, дабы избежать путаницы.
import tkinter as tk - нормальный вариант
3.
Появляется, когда я переключаюсь на другое окно vs code и обратно
а до переключения окно tkinter нормально появляется? Рядом случайно нет еще одного файла tkinter.py? Хотя по варнингам с вайлдкарда похоже, что нет. Приложите полный код и полную ошибку, которую получаете
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, это не ошибки, а предупреждения линтера. Во-вторых, учить лучше без IDE.
Ответ написан
Комментировать
nki
@nki
bezkart.ru готовая система лояльности
Что использовать, чтобы перестать фиксить ошибки и начать учить пайтон?

Чтобы начать учить Python Tk не нужен. Достаточно стандартных библиотек.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы