OpenSky is a desktop weather application built with Python and PyQt5. It uses the OpenWeatherMap API to retrieve and display current weather information for a city selected by the end user.
The application is designed to provide a simple graphical interface for viewing weather conditions, temperature, and other relevant data.
OpenSky is currently under active development. The core weather display functionality is available, while additional features are planned for future releases.
- @BroCodez on YouTube for providing the 12 hour Python tutorial that included the Weather API Project that started it all.
- OpenWeatherMap for providing the real-time weather data that this application is based on
- PyQt5 for the graphical user interface framework
- The Python community for useful libraries and documentation
- My Twitch community that watched me learn Python and stayed for the development of this project!
Suggestions, bug reports, and contributions are welcome!
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name- Commit your changes
git commit -m "Add your feature description"
``*- Push the branch*
git push origin feature/your-feature-name- Open a pull request*
- Desktop graphical user interface built with PyQt5
- Display the current temperature
- Convert temperature between Celsius and Fahrenheit
- Display the current weather condition
- Display a weather icon and condition caption
- Display the current city
- Retrieve weather data through the OpenWeatherMap API
- Prompt users to enter their OpenWeatherMap API key through a dialog window
- Store the API key for use in future sessions
- Store API credentials using secure operating-system credential storage
- Display additional weather information, including:
- Wind speed and direction
- Humidity
- Air quality
- Feels-like temperature
- Atmospheric pressure
- Visibility
- Sunrise and sunset times
- Save multiple cities
- Display current weather conditions for saved cities
- Automatically refresh weather data at regular intervals
- Display a multi-day weather forecast
- Add improved loading indicators and error messages
- Add customizable application settings
A preview image or animated GIF can be added here:
- Python 3.14
- PyQt6 GUI
- QSS
- OpenWeatherMap API
- Requests
- JSON
- HTTP
- Python 3.8 or newer
- An OpenWeatherMap API key
- An active internet connection
- An internet connection is required to retrieve weather data
- A valid OpenWeatherMap API key is required*
- Weather data depends on the availability and accuracy of the OpenWeatherMap service
- API request limits may apply depending on the selected OpenWeatherMap plan*
- Clone the repository:
git clone https://github.com/YOUR\_USERNAME/OpenSky.git- Navigate to the project directory:
cd OpenSky- Create the virtual environment:
python -m venv venv- Activate the virtual environment
- For Windows end users:
venv\Scripts\activate
- For Linux or macOS end users:
source venv/bin/activate - Install the required dependencies:
pip install -r requirements.txtOpenSky requires an API Key from OpenWeatherMap to retrieve weather data
- Create an account on OpenWeatherMap API
- Generate an API key from your account dashboard
- Configure the key according to the application's setup instructions
- Start OpenSky
For development, the API key may be provided through an environment variable:
OPENWEATHER\_API\_KEY=your\_api\_key\_hereOn Windows Powershell:
\$env:OPENWEATHER\_API\_KEY = "your\_api\_key\_here"The planned version of OpenSky will allow users to enter their API key through an in-app dialog and save it for future sessions.
Where possible, API keys should be stored using the operating system's secure credential manager. The application should not implement custom encryption for sensitive credentials.
Run the application with:
python main.pyOpenSky is licensed under the GNU General Public License v3.0.
See the LICENSE file for the complete license text.
This project uses PyQt6, which is available under the GNU GPL or a commercial license. OpenSky is distributed as an open-source GPL-licensed application.