为什么Python tkinter在打开此文件时崩溃?

为什么Python tkinter在打开此文件时崩溃?,python,tkinter,terminal,crash,launcher,Python,Tkinter,Terminal,Crash,Launcher,有人知道为什么Python启动器在运行此代码时会崩溃吗?是否有一些明显的东西我错过了,因为它是以前的工作。从终端在Mac上运行 甚至不会抛出错误,所以我不确定到底发生了什么 我是否需要更新tkinter,或者它只是导致问题的函数之一 import tkinter as tk import requests import json from PIL import ImageTk, Image root = tk.Tk() root.geometry("800x600") #

有人知道为什么Python启动器在运行此代码时会崩溃吗?是否有一些明显的东西我错过了,因为它是以前的工作。从终端在Mac上运行

甚至不会抛出错误,所以我不确定到底发生了什么

我是否需要更新tkinter,或者它只是导致问题的函数之一

import tkinter as tk
import requests
import json
from PIL import ImageTk, Image

root = tk.Tk()
root.geometry("800x600")
# root.configure(bg = 'black')

# root.iconbitmap('./images/rain_jpeg.jpg')

Images = dict()

def display_photo(row=0, column=0):

    if weather_main + '_tk' not in [*Images]:
        image_1 = ImageTk.PhotoImage(Image.open("./images/" + weather_main + ".jpg"))
        photo = tk.Label(root, image = image_1)
        photo.image = image_1
        photo.pack()

    text_runner()

def city_clicker_runner():
    
    global weather_main
    global city

    city = e.get()
    request_address = "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&units=metric&appid=0a0699452f695d2f9f82b65af024a134"
    api_request = requests.get(request_address)
    api = json.loads(api_request.content)

    mylabel2 = tk.Label(root, text = 'URL=' + request_address)
    # mylabel2.configure(foreground="white")
    mylabel2.pack()

    coordinates = api["coord"]
    weather_main = api["weather"][0]["main"]
    weather_description = api["weather"][0]["description"]
    temp = int(api["main"]["temp"])

    mainy = tk.Label(root, text = "the weather is " + weather_main)
    mainy.pack()

    display_photo()
        
def text_runner():

    running = tk.Label(root, text = 'we are running')
    running.pack()

    mylabel = tk.Label(root, text = "The weather in " + city + " is " + weather_main + " and the temperature is " + str(temp), font=("Helvetica", 20))
    mylabel.pack()

e = tk.Entry(root)
e.pack()

city_clicker = tk.Button(root, text = "GO", command=city_clicker_runner)
city_clicker.pack()


没有
root.mainloop()
应用程序将无法启动。就像应用程序总是关闭的一样,你必须将它保持在一个循环中,这样它才能在你关闭它的时候继续运行(打破循环)

希望它消除了错误


干杯

你的
root.mainloop()
在哪里?看起来一点也不像。哇,我是个白痴,非常感谢啊哈。@BenjaminMcDowell我添加了一个答案,如果你能将它标记为答案,它会关闭QD。这个答案能回答你的问题吗?