Сложность запуска кода Python в коде Visual Studio, выполняется в оболочке Python, но не здесь

#python #tkinter #visual-studio-code

#python #tkinter #visual-studio-code

Вопрос:

Я кодировал на Python в Visual Studio Code. Я начал с Tkinter. Я запускал следующий код (см. Прикрепленное Изображение), и он не работал, однако он работал в оболочке Python. Все подробности на картинке, что такое ошибка Image: [1]: https://i.stack.imgur.com/Nx0b6.png

Это код:

 from tkinter import *

root= Tk()

topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root)
bottomFrame.pack(side=BOTTOM)

button1 = Button(topFrame, text="button 1", fg="red")
button2 = Button(topFrame, text="button 2", fg="orange")
button3 = Button(topFrame, text="buton 3", fg="yellow")
button4 = Button(topFrame, text="button 4", fg="green")

button1.pack()
button2.pack()
button3.pack()
button4.pack()

root.mainloop()
  

ошибка:

 NameError: name 'Tk' is not defined
  

Комментарии:

1. Какую операционную систему вы используете? У вас установлена только одна копия python? Если вы используете Windows, как вы установили python?

2. Я регулярно устанавливал python — из магазина Microsoft. Расширение Python для Visual Studio я установил из приложения.

Ответ №1:

Приоритет импорта python:

  • текущий каталог
  • текущий каталог пользователя
  • глобальный каталог

Судя по предоставленному скриншоту, файл сценария имеет то же имя, что и модуль, который вы пытаетесь использовать: tkinter (см. Пункт N1 из приоритета). Кроме того, импорт был выполнен с использованием «*», проверка во время импорта не выполняется, независимо от того, имеет модуль Tk объект / класс или нет

Чтобы избежать проблемы: переименуйте свой файл во что-то другое.

Лучшие практики:

  • Не импортируйте через glob, иначе «*», вместо этого используйте строгий импорт
  • не называйте файлы так же, как существующие стандартные библиотеки

Ответ №2:

Если C:Users …Desktoptkinter.py это ваш файл скрипта, созданный вручную.
Попробуйте переименовать C:Users …Desktoptkinter.py к другому. Например my_tkinter.py .
Вероятно, Python использует tkinter.py файл модуля в том же каталоге, что и visualStudioCode.py которые не являются библиотечным модулем по умолчанию.