#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
.