'Weather forecast using python

I am trying to make a weather forecast "app" using python, following the instructions of this video: https://www.youtube.com/watch?v=7JoMTQgdxg0

Everything works fine, except from the functionality of displaying some icons to make it look better.

If i remove the code that its used for the icons, everything works perfect. I don´t know what I should do so this works.

from tkinter import *
from tkinter import messagebox
from configparser import ConfigParser
import requests


url = "https://api.openweathermap.org/data/2.5/weather?q={}&appid={}"
config_file = 'config.ini'
config = ConfigParser()
config.read(config_file)
api_key = config['api_key']['key']

def get_weather(city):
    result = requests.get(url.format(city, api_key))
    if result:
        #print(result.content)
        json = result.json()
        #City, country, temp_celsius, temp:farenheit, icon weather
        city = json['name']
        country = json['sys']['country']
        temp_kelvin = json['main']['temp']
        temp_celsius = temp_kelvin - 273.15
        temp_farenheit = (temp_kelvin - 273.15) * 9 / 5 + 32
        icon = json['weather'][0]['icon']
        weather = json['weather'][0]['main']
        final = (city, country, temp_celsius, temp_farenheit, icon, weather)
        return final
    else:
        return None

#print(get_weather('London'))

def search():
    city = city_text.get()
    weather = get_weather(city)

    if weather:
        location_lbl['text'] = '{}, {}'.format(weather[0], weather[1])
        image['bitmap'] = 'weather_icons/{}.png'.format(weather[4])#HERE ITS THE PROBLEM
        temp_lbl['text'] = '{:.2f}ºC, {:.2f}ºF'.format(weather[2], weather[3])
        weather_lbl['text'] = weather[5]
    else:
        messagebox.showerror('Error', 'Cannot find city {}'.format(city))
    


app = Tk()
app.title("Weather App")
app.geometry('700x350')

city_text = StringVar()
city_entry = Entry(app, textvariable=city_text)
city_entry.pack()

search_btn = Button(app, text='Search Weather', width=12, command=search)
search_btn.pack()

location_lbl = Label(app, text="", font=('bold', 20))
location_lbl.pack()

image = Label(app, bitmap='')#HERE ITS THE PROBLEM
image.pack()

temp_lbl = Label(app, text="")
temp_lbl.pack()

weather_lbl = Label(app, text="")
weather_lbl.pack()



app.mainloop()

I also have another file that its called: config.ini for saving my API key, and a folder named weather_icons for storing the images

.enter image description here



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source