Weather App in Python using Tkinter module Last Updated : 23 Jan, 2021 Summarize Comments Improve Suggest changes Share Like Article Like Report In this article, we are going to discuss how to create a weather app using tkinter. The GUI app will tell us the current weather of a particular city along with temperature details along with other details. Modules required:Tkinter: It is a built-in python library for making GUI using tkinter toolkit.Requests: It is a library which helps in fetching the data with the help of URL. It can be installed using the below command:pip install requestsApproach: Firstly, we have to use a weather API for fetching the data from the Open Weather Map website by generating an API key, and then we need to create a configuration file to store the key. And finally using that configuration file in the python script. Steps to generate an API key:Login in the Open Weather MapGo to the API section. Then in the Current Weather Data section click on the Api doc.Now in the API Call section, we have the link of api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}Click on the API key on the link it will direct to the page from where you can get the key. The generated key looks like this:Steps to create the Configuration file:Create a file named config.ini.Write key name enclosed in closed brackets in it here [gfg].Create a variable key(here key) and paste the key you copied as shown below:Steps to create the Python script:Import modules. Python3 # import required modules from configparser import ConfigParser import requests from tkinter import * from tkinter import messagebox We have to first make the body of the GUI with the help of tkinter. Python3 # create object app = Tk() # add title app.title("Weather App") # adjust window size app.geometry("300x300") # add labels, buttons and text 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="Location", font={'bold', 20}) location_lbl.pack() temperature_label = Label(app, text="") temperature_label.pack() weather_l = Label(app, text="") weather_l.pack() app.mainloop() Read the config.ini file and then load the key and URL in the program. Python3 # extract key from the # configuration file config_file = "config.ini" config = ConfigParser() config.read(config_file) api_key = config['gfg']['api'] url = 'http://api.openweathermap.org/data/2.5/weather?q={}&appid={}' Make a getweather() function to get the weather of a particular location. Python3 # explicit function to get # weather details def getweather(city): result = requests.get(url.format(city, api_key)) if result: json = result.json() city = json['name'] country = json['sys'] temp_kelvin = json['main']['temp'] temp_celsius = temp_kelvin-273.15 weather1 = json['weather'][0]['main'] final = [city, country, temp_kelvin, temp_celsius, weather1] return final else: print("NO Content Found") Search function so that we can get the output weather details. Python3 # explicit function to # search city def search(): city = city_text.get() weather = getweather(city) if weather: location_lbl['text'] = '{} ,{}'.format(weather[0], weather[1]) temperature_label['text'] = str(weather[3])+" Degree Celsius" weather_l['text'] = weather[4] else: messagebox.showerror('Error', "Cannot find {}".format(city)) Below is the complete program: Python3 # import required modules from configparser import ConfigParser import requests from tkinter import * from tkinter import messagebox # extract key from the # configuration file config_file = "config.ini" config = ConfigParser() config.read(config_file) api_key = config['gfg']['api'] url = 'http://api.openweathermap.org/data/2.5/weather?q={}&appid={}' # explicit function to get # weather details def getweather(city): result = requests.get(url.format(city, api_key)) if result: json = result.json() city = json['name'] country = json['sys'] temp_kelvin = json['main']['temp'] temp_celsius = temp_kelvin-273.15 weather1 = json['weather'][0]['main'] final = [city, country, temp_kelvin, temp_celsius, weather1] return final else: print("NO Content Found") # explicit function to # search city def search(): city = city_text.get() weather = getweather(city) if weather: location_lbl['text'] = '{} ,{}'.format(weather[0], weather[1]) temperature_label['text'] = str(weather[3])+" Degree Celsius" weather_l['text'] = weather[4] else: messagebox.showerror('Error', "Cannot find {}".format(city)) # Driver Code # create object app = Tk() # add title app.title("Weather App") # adjust window size app.geometry("300x300") # add labels, buttons and text 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="Location", font={'bold', 20}) location_lbl.pack() temperature_label = Label(app, text="") temperature_label.pack() weather_l = Label(app, text="") weather_l.pack() app.mainloop() Output: How to Build a Weather App in Python? | Python Project Comment More infoAdvertise with us Next Article Building A Weather CLI Using Python A abhisheksrivastaviot18 Follow Improve Article Tags : Python Python-tkinter Python Tkinter-exercises Python Tkinter-projects Practice Tags : python Similar Reads Image Viewer App in Python using Tkinter Prerequisites: Python GUI â tkinter, Python: Pillow Have you ever wondered to make a Image viewer with the help of Python? Here is a solution to making the Image viewer with the help of Python. We can do this with the help of Tkinter and pillow. We will discuss the module needed and code below. Mod 5 min read Weather app using Django | Python Our task is to create a Weather app using Django that lets users enter a city name and view current weather details like temperature, humidity, and pressure. We will build this by setting up a Django project, creating a view to fetch data from the OpenWeatherMap API, and designing a simple template 2 min read Number Guessing Game Using Python Tkinter Module Number Guessing Game using the Python Tkinter module is a simple game that involves guessing a randomly generated number. The game is developed using the Tkinter module, which provides a graphical user interface for the game. The game has a start button that starts the game and a text entry field wh 5 min read Building A Weather CLI Using Python Trying to know the weather is something that we all do, every day. But have you ever dreamed of making a tool on your own that can do the same? If yes, then this article is for you. In this article, we will look at a step-by-step guide on how to build a Weather CLI using OpenWeather API. What is Ope 4 min read Python | Real time weather detection using Tkinter Prerequisites : Introduction to tkinter | Find current weather of any cityPython offers multiple options for developing GUI (Graphical User Interface). Out of all the GUI methods, tkinter is the most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. P 5 min read Python: Weight Conversion GUI using Tkinter Prerequisites: Python GUI â tkinterPython offers multiple options for developing a GUI (Graphical User Interface). Out of all the GUI methods, Tkinter is the most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. Python with Tkinter outputs the fastes 2 min read Like