Не удается импортировать tkcalendar или календарь из tkcalendar, отображающий импорт, скорее всего, из-за циклического импорта

#python #tkinter #tkcalendar

Вопрос:

Я создаю календарь в tkinter с помощью tkcalendar, но при импорте tkcalendar я получил эту ошибку:

ImportError: не удается импортировать имя «Календарь» из частично инициализированного модуля «tkcalendar» (скорее всего, из-за циклического импорта)

Я попытался увидеть другие ответы переполнения стека на ошибки циклического импорта, но не смог решить проблему. Я попытался импортировать календарь из tkcalendar непосредственно перед определением функции «отображение», а не в начале, но это также не решило проблему.

Расположение tkcalendar:

C:UsersVanshAppDataRoamingPythonPython38site-packages

Мой код:

 from tkinter import *
from tkcalendar import Calendar
from PIL import ImageTk,Image

x=Tk()

#Widget Size, Color, Title
x.geometry("400x400")
x.minsize(400,400)
x.maxsize(500,500)
x["bg"]="#222222"
x.title("Calendar")

#Title Label
l_title=Label(x,text="Calendar")
l_title["fg"]="white"
l_title["bg"]="#222222"
l_title["font"]=("Times New Roman",25,"bold")
l_title.place(x=125,y=20)

#Calendar Image Label
calendar_img=ImageTk.PhotoImage(Image.open("images/calendar.png"))
l_calendar_img=Label(x)
l_calendar_img["bg"]="#222222"
l_calendar_img["width"]=60
l_calendar_img["height"]=60
l_calendar_img["borderwidth"]=0
l_calendar_img.place(x=165,y=65)

#Month Label
l_month=Label(x,text="Month")
l_month["bg"]="#222222"
l_month["fg"]="#aef359"
l_month["font"]=("Arial",14)
l_month.place(x=30,y=147)

#Month Spinbox
sb_month=Spinbox(x, from_=1,to=12)
sb_month["bg"]="#111111"
sb_month["fg"]="white"
sb_month["width"]=5
sb_month["font"]=("Times New Roman",12)
sb_month.place(x=100,y=150)

#Year Label
l_year=Label(x,text="Year")
l_year["bg"]="#222222"
l_year["fg"]="#aef359"
l_year["font"]=("Arial",14)
l_year.place(x=225,y=147)

#Year Spinbox
sb_year=Spinbox(x, from_=1990,to=2030)
sb_year["bg"]="#111111"
sb_year["fg"]="white"
sb_year["width"]=7
sb_year["font"]=("Times New Roman",12)
sb_year.place(x=280,y=150)

#Display function
def display():
    month=sb_month.get()
    year=sb_year.get()
    cal=Calendar(x,year=year,month=month)
    cal.place(x=200,y=300)

#Show Calendar Button
b_show=Button(x,text="Show Calendar")
b_show["bg"]="#ff6700"
b_show["fg"]="white"
b_show["activebackground"]="#aef359"
b_show["activeforeground"]="white"
b_show["borderwidth"]=0
b_show["font"]=("Arial",9,"bold")
b_show["command"]=display
b_show.place(x=150,y=190)

x.mainloop()
 

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

1. Ты только что назвал свой сценарий «Calendar.py»?

2. Я получил точно такую же ошибку при попытке запустить tkinter в среде, в которой я на самом деле его не устанавливал; я просто скопировал tkinter каталог. Это проблемно означает, что вы не установили tkcalendar или tkinter неправильно. Попробуйте установить его еще раз и посмотрите, как это пойдет.

3. Скорее всего, вы назвали свой сценарий tkcalendar.py .