Skip to content

MaverickPoly/awesome-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Python

A curated list of awesome Python frameworks, libraries, software, and resources, focusing on modern, actively maintained projects across various domains.

Contents


Web Development

Frameworks

  • Django: The web framework for perfectionists with deadlines. Known for its "batteries-included" approach, suitable for complex, database-driven websites.
  • Flask: A lightweight WSGI web application framework. Designed to make getting started quick and easy, with the ability to scale up to complex applications.
  • FastAPI: A modern, fast (high-performance) web framework for building APIs with Python 3.7+ based on standard Python type hints. Great for robust and production-ready APIs.
  • Pyramid: A minimalist, flexible, and powerful web framework. It scales from a small application to a large one, and offers a lot of freedom in terms of structure.
  • Tornado: A Python web framework and asynchronous networking library, originally developed for FriendFeed. Ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.

HTTP Clients

  • Requests: The de facto standard for making HTTP requests in Python. Simple, elegant, and powerful.
  • HTTPX: A fully featured HTTP client for Python 3, which provides sync and async APIs, and support for HTTP/1.1 and HTTP/2.

Web Scraping

  • Beautiful Soup: A library for pulling data out of HTML and XML files. It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree.
  • Scrapy: An open-source and collaborative framework for extracting the data you need from websites.
  • Selenium: Automates web browsers. Primarily used for testing, but also great for web scraping requiring JavaScript rendering.

APIs & REST

  • Django REST Framework: A powerful and flexible toolkit for building Web APIs.
  • Pydantic: Data validation and settings management using Python type hints. Essential for FastAPI and other API validation.

Data Science & Machine Learning

Numerical & Data Manipulation

  • NumPy: The fundamental package for numerical computing with Python. Provides powerful N-dimensional array objects and functions.
  • Pandas: A fast, powerful, flexible, and easy-to-use open-source data analysis and manipulation tool, built on top of the Python programming language.
  • SciPy: A collection of open-source software for mathematics, science, and engineering. Builds on NumPy.
  • Dask: A flexible library for parallel computing and handling larger-than-memory datasets. Integrates with NumPy and Pandas.
  • Polars: A blazing-fast DataFrames library written in Rust, with bindings for Python. Designed for performance and large datasets.

Machine Learning & Deep Learning

  • Scikit-learn: A simple and efficient tool for data mining and data analysis. Built on NumPy, SciPy, and Matplotlib, covering various classification, regression, and clustering algorithms.
  • TensorFlow: An open-source machine learning framework developed by Google. Used for building and training neural networks.
  • PyTorch: An open-source machine learning library developed by Facebook AI Research (FAIR). Known for its flexibility and ease of use in deep learning research.
  • Keras: A high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. Simplifies deep learning model creation.
  • XGBoost: An optimized distributed gradient boosting library designed to be highly efficient, flexible and portable.
  • LightGBM: A gradient boosting framework that uses tree-based learning algorithms. Designed for speed and high performance.

Data Visualization

  • Matplotlib: A comprehensive library for creating static, animated, and interactive visualizations in Python.
  • Seaborn: A Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.
  • Plotly: An interactive, open-source graphing library that supports over 40 unique chart types, including 3D charts, statistical graphs, and financial charts.
  • Dash: A productive Python framework for building analytical web applications. No JavaScript required.
  • Altair: A declarative statistical visualization library for Python, based on Vega-Lite.

Natural Language Processing (NLP)

  • NLTK: The Natural Language Toolkit, a leading platform for building Python programs to work with human language data.
  • spaCy: An industrial-strength natural language processing (NLP) library designed to be fast and efficient for production use.
  • Hugging Face Transformers: Provides thousands of pre-trained models to perform tasks on texts, such as classification, information extraction, summarization, translation, text generation, and more.

Desktop GUI Development

  • PyQt: A set of Python bindings for the Qt application framework. Enables creation of rich graphical user interfaces.
  • Tkinter: Python's standard GUI (Graphical User Interface) toolkit. It's simple and built-in, making it good for smaller applications or learning.
  • Kivy: An open-source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps. Cross-platform, including mobile.
  • PySide6: The official Python bindings for Qt, offering a permissive LGPL license compared to PyQt's GPL.
  • PySimpleGUI: A wrapper around Tkinter, Qt, WxPython, and Remi, designed to make GUI development extremely easy for beginners.
  • wxPython: A Python wrapper for the wxWidgets C++ library, providing a set of Python bindings for the cross-platform GUI toolkit.
  • Flet: Framework that enables developers to easily build realtime web, mobile and desktop apps in Python.

Game Development

  • Pygame: A set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language. Excellent for 2D games and learning game dev basics.
  • Arcade: An easy-to-use Python library for creating 2D arcade games with an emphasis on simple, object-oriented design. Built on top of Pygame and Pyglet.
  • Pyglet: A powerful, easy-to-use Python library for developing games and other visually rich applications. Supports windowing, user interface events, Joysticks, OpenGL graphics, loading images and videos, and playing sounds and music.
  • Panda3D: An open-source, cross-platform 3D engine written in C++, with a complete set of Python bindings. Used for games, simulations, and visualizations.
  • Ren'Py: A visual novel engine that helps you make interactive stories and games. It's written in Python and can create multi-platform games.
  • Raylib: A low-level library for 2D and 3D programming, built in C. It provides a simple API for creating windows, rendering, handling user input, and more.

Automation & Scripting

  • Selenium: Python bindings for the Selenium WebDriver, used for automating web browser interaction for testing, data scraping, and more.
  • Fabric: A high-level Python library designed to streamline the use of SSH for application deployment or systems administration tasks.
  • Ansible: An open-source automation tool, for configuration management, application deployment, orchestrating more advanced tasks. Uses Python on the control node.
  • OpenPyXL: A Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files. Useful for automating spreadsheet tasks.
  • python-docx: A Python library for creating and updating Microsoft Word .docx files.
  • PyAutoGUI: A cross-platform GUI automation Python module for human beings. Lets your Python scripts control the mouse and keyboard, and interact with other applications.
  • Schedule: A simple, lightweight, in-process scheduler for jobs.

Cybersecurity & Networking

  • Scapy: A powerful interactive packet manipulation program. It can forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more.
  • Paramiko: A Python implementation of the SSHv2 protocol, providing both client and server functionality. Useful for automating remote command execution and file transfers.
  • Python-Nmap: A Python library that helps in using the Nmap port scanner.
  • Cryptography: A package that provides cryptographic recipes and primitives to Python developers. Includes both high-level recipes and low-level interfaces to common cryptographic algorithms.
  • Impacket: A collection of Python classes for working with network protocols. It's a key tool for penetration testers.

Databases

  • SQLAlchemy: The Python SQL toolkit and Object Relational Mapper that gives developers the full power of SQL. Supports various databases.
  • Psycopg2: The most popular PostgreSQL adapter for the Python programming language.
  • PyMySQL: A pure Python MySQL client library.
  • sqlite3: Python's built-in module for working with SQLite databases.
  • Redis-Py: The Python client for the Redis key-value store.
  • Pymongo: The official MongoDB driver for Python.

Testing

  • Pytest: A mature full-featured Python testing framework that helps you write better programs. Known for its simplicity and extensibility.
  • unittest: Python's built-in unit testing framework, inspired by JUnit.
  • Mock: A library for mocking or patching parts of your code during tests (built into unittest in Python 3.3+).
  • Coverage.py: Measures code coverage, typically during test execution.
  • Factory Boy: A fixtures replacement for Python, used for generating fake data for tests.
  • PyHamcrest: A framework for writing matcher objects, allowing you to create flexible assertions in your tests.

Miscellaneous

Asynchronous Programming

  • asyncio: Python's built-in library for writing concurrent code using the async/await syntax.
  • Aiohttp: An asynchronous HTTP client/server framework built on asyncio.
  • Celery: An asynchronous task queue/job queue based on distributed message passing. Often used for handling background tasks in web applications.

Images

  • Pillow (PIL Fork): The friendly PIL (Python Imaging Library) fork, adding image processing capabilities, supporting many image file formats, and providing powerful image manipulation functions.
  • OpenCV-Python: Official Python bindings for OpenCV, a highly optimized library for computer vision tasks including image and video analysis, object detection, and machine learning.
  • scikit-image: A collection of algorithms for image processing, providing functions for segmentation, geometric transformations, feature detection, filtering, and more. Integrates well with NumPy arrays.
  • Wand: A ctypes-based simple ImageMagick binding for Python. Provides a clean and powerful interface for image manipulation, similar to what you can do with ImageMagick command-line tools.
  • imgaug: A library for image augmentation in machine learning experiments, supporting a wide range of augmentation techniques.

Development Tools

Code Quality & Formatting

  • Black: The uncompromising Python code formatter. Formats code consistently without manual intervention.
  • Flake8: A wrapper around PyFlakes, pycodestyle and McCabe. A great tool for enforcing style guidelines and catching common errors.
  • isort: A Python utility/library to sort imports alphabetically, and automatically separated into sections and by type.
  • Pylint: A static code analyzer that checks for errors in Python code, tries to enforce a coding standard, and looks for code smells.
  • mypy: An optional static type checker for Python that aims to combine the benefits of dynamic and static typing.

Environment Management

  • venv: Python's built-in module for creating lightweight virtual environments.
  • Poetry: A tool for dependency management and packaging in Python. Simplifies project setup, virtual environments, and publishing.
  • Conda: An open-source package management system and environment management system. Widely used in the data science community for managing complex dependencies.
  • Pipenv: A tool that aims to bring the best of all packaging worlds to the Python world (bundler, composer, npm, cargo, yarn, etc.).

Command-Line Tools

  • Click: A Python package for creating beautiful command line interfaces in a composable way with as little code as necessary.
  • Typer: A library for building CLI applications that is based on Python type hints and inspired by FastAPI.
  • Rich: A Python library for rich text and beautiful formatting in the terminal.
  • Asciinema: A free and open-source solution for recording terminal sessions and sharing them on the web.

Integrated Development Environments (IDEs)

  • PyCharm: A powerful and popular IDE by JetBrains specifically designed for Python development. Offers Community (free) and Professional editions.
  • VS Code: A lightweight, but powerful source code editor that runs on your desktop. Its rich ecosystem of extensions, especially the official Python extension, makes it an excellent choice for Python.
  • Jupyter Notebook / JupyterLab: An open-source web application that allows you to create and share documents that contain live code, equations, visualizations, and narrative text. Essential for data science.
  • Spyder: An open-source scientific Python IDE, popular among data scientists, with features like variable explorer, debugger, and profiler.
  • Sublime Text: Sophisticated text and code editor that is popular among developers and writers for its speed, versatility, and customizable features.
  • Vim / NeoVim: A highly configurable text editor that can be extended with plugins to become a powerful Python development environment.

Learning Resources

  • Python Official Documentation: The comprehensive and authoritative source for all things Python.
  • Real Python: High-quality Python tutorials and courses for all skill levels, covering a wide range of topics.
  • Python for Everybody: A series of free courses and books by Dr. Charles Severance for learning Python. Great for beginners.
  • Google's Python Class: A free class for people with a little programming experience who want to learn Python. Includes lectures, written materials, and coding exercises.
  • Codecademy Python Track: Interactive online courses to learn Python programming from scratch.
  • TestDriven.io: High-quality tutorials on Django, Flask, FastAPI, Docker, and more, focusing on practical, test-driven development.

Awesome Resources

  • PyPI (Python Package Index): The official third-party software repository for Python, where you can find thousands of packages.
  • Python.org: The official website of the Python programming language, including downloads, documentation, and news.
  • Python Software Foundation (PSF): The non-profit organization behind Python, supporting the language and its community globally.
  • Stack Overflow (Python Tag): A comprehensive Q&A site for programmers, with a very active Python community for seeking and offering help.
  • Python Reddit (r/Python): A popular community on Reddit for Python news, discussions, and help, covering a wide range of topics.
  • Planet Python: An aggregator of Python blogs and news feeds from around the world, providing a centralized view of new content.
  • Python Weekly Newsletter: A free weekly newsletter featuring curated Python articles, projects, and news delivered to your inbox.
  • Talk Python To Me Podcast: A weekly podcast on Python and related technologies, featuring interviews with prominent community members and discussions on various topics.
  • Python Bytes Podcast: A short, digestible weekly podcast discussing the latest Python news and packages, ideal for staying up-to-date.
  • PyCon US: The largest annual gathering for the Python community in the United States, featuring talks, tutorials, and sprints.
  • EuroPython: The largest annual Python conference in Europe, bringing together developers from across the continent and beyond.
  • PyData: A series of conferences focused on the use of Python in data science, including workshops and networking opportunities.
  • GitHub (Python Language Filter): The primary platform for hosting open-source Python projects, discoverable via language topics and a great place to find new libraries and contribute.
  • Awesome Python (vinta/awesome-python): The original, most comprehensive, and widely used 'awesome' list for Python. An excellent resource for further exploration and discovering niche projects.

Contributing

Contributions are always welcome! Please read the contribution guidelines to ensure your suggestions are added smoothly.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A curated list of awesome Python frameworks, libraries, software, and resources.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages