Awesome Python

repository·master·Indexed Aug 11, 2026

https://github.com/vinta/awesome-python

A curated, opinionated list of the best Python frameworks, libraries, tools, and resources. It covers a wide range of categories including AI/ML, Web Development, DevOps, Data Science, HTTP & Scraping, Database & Storage, and the Python toolchain.

Tokens
12.7K
Snippets
9
Records
74
Agent score
75%

What's inside Awesome Python

  1. Overview of Awesome Python

    master
    Awesome Python is an opinionated guide and curated list of the best Python frameworks, libraries, tools, and resources. It is organized into numerous categories covering the entire Python ecosystem, including AI/ML, Web Development, DevOps, Data Science, and more. While the repository contains the list, it is recommended to visit the official website for more efficient searching and filtering of projects.
  2. Find Python libraries for Image and Media Processing

    master

    Libraries for handling visual and auditory media:

    Image Processing

    • Core Manipulation: pillow (PIL fork), pyvips (fast/low memory), scikit-image (scientific processing), wand (ImageMagick bindings).
    • Specialized: pymatting (alpha matting), python-barcode (barcodes), python-qrcode (QR codes), thumbor (on-demand resizing/cropping).
  3. Explore Synchronous and Asynchronous Web Frameworks

    master

    Python offers various web frameworks categorized by their execution model:

    Synchronous Frameworks

    • bottle: A fast, single-file micro-framework with no dependencies.
    • django: The most popular full-featured web framework.
    • flask: A widely used microframework.
    • pyramid: A small, fast, and extensible framework.
    • fasthtml: Optimized for creating HTML applications quickly.
    • masonite: A modern, developer-centric framework.

    Asynchronous Frameworks

    • litestar: A production-ready, extensible ASGI framework.
    • microdot: An extremely small framework for Python and MicroPython.
    • reflex: For building reactive, full-stack web apps entirely in Python.
    • robyn: High-performance async framework with a Rust runtime.
    • starlette: A lightweight ASGI toolkit for high-performance services.
    • tornado: A web framework and asynchronous networking library.
  4. Manage Python Environments and Packages

    master

    Tools for managing versions, environments, and dependencies:

    Environment Management

    • KillPy: Detect and clean unused environments/pipx packages.
    • pyenv: Python version management.
    • pyenv-win: Pyenv for Windows.
    • uv: Extremely fast version, package, and project manager (Rust-based).
    • virtualenv: Create isolated environments.

    Package Management

    • conda: Cross-platform, Python-agnostic binary manager.
    • hatch: Modern project manager for environments, builds, and publishing.
    • pip: Standard package installer.
    • pipx: Install and run Python applications in isolated environments (like npx).
    • poetry: Dependency management and packaging.
    • uv: (Also listed under environment management) Fast Rust-based manager.
  5. Implement WebSockets and Real-time Communication

    master

    For real-time features, use these libraries:

    • autobahn-python: WebSocket & WAMP for Twisted and asyncio.
    • channels: Asynchronous capabilities specifically for Django.
    • flask-socketio: Socket.IO integration for Flask.
    • picows: High-performance WebSocket clients/servers with frame-level interface.
    • websockets: Simple and correct library for building WebSocket servers and clients.
  6. Explore Deep Learning frameworks

    master

    Frameworks for building and training neural networks:

    • jax: High-performance numerical computing with JIT and auto-diff.
    • keras: High-level API supporting JAX, TensorFlow, and PyTorch.
    • pytorch: Dynamic neural networks with GPU acceleration.
    • pytorch-lightning: High-level framework for scaling PyTorch training.
    • tensorflow: Google's widely-used deep learning framework.
    • stable-baselines3: Reinforcement learning algorithms implemented in PyTorch.
  7. Find Python libraries for Text Processing and Parsing

    master

    Libraries for manipulating plain text, generating identifiers, and parsing structured data:

    Text Manipulation

    • General: babel (i18n), chardet (encoding detection), difflib (delta computing), ftfy (Unicode fixing), python-slugify (Unicode to ASCII), textdistance (sequence distance algorithms).
    • Transliteration: unidecode (ASCII), pypinyin (Chinese Hanzi to Pinyin).
    • Formatting: pyfiglet (FIGlet implementation), pangu.py (text spacing).

    Unique Identifiers

    • Short IDs: sqids (numbers to short IDs), shortuuid (URL-safe UUIDs).

    Parsers

    • Combinators/General: parsy (parser combinators), pyparsing (general purpose framework).
    • Syntax/Specific: pygments (syntax highlighting), sqlparse (SQL), python-user-agents (browser agents), python-nameparser (human names), python-phonenumbers (international phone numbers), tree-sitter-language-pack (300+ languages).
  8. Build CLI applications with Python

    master

    Libraries for creating command-line interfaces:

    CLI Development Frameworks

    • argparse: Python standard library for option and argument parsing.
    • cement: CLI Application Framework.
    • click: Package for creating composable command line interfaces.
    • python-fire: Creates CLIs from any Python object.
    • python-prompt-toolkit: For building powerful interactive command lines.
    • typer: Modern CLI framework using Python type hints (built on Click and Pydantic).

    Terminal Rendering

    • alive-progress: Progress bars with real-time throughput and animations.
    • asciimatics: Create full-screen text UIs and ASCII animations.
    • colorama: Cross-platform colored terminal text.
    • rich: Rich text and beautiful terminal formatting (includes RichHandler for logging).
    • textual: Framework for building interactive UIs in the terminal and browser.
    • tqdm: Fast, extensible progress bar for loops and CLI.
  9. Build Web APIs with Django, Flask, or Agnostic libraries

    master

    Depending on your existing stack, you can build RESTful or GraphQL APIs using:

    Django-based APIs

    • django-modern-rest: Modern REST with support for msgspec and pydantic.
    • django-ninja: Fast, type-hint based REST framework using Pydantic.
    • django-rest-framework: A powerful, flexible toolkit for web APIs.
    • strawberry-django: Integration for Strawberry GraphQL.

    Flask-based APIs

    • apiflask: Lightweight API framework based on Flask and Marshmallow.

    Framework Agnostic APIs

    • connexion: Spec-first framework using OpenAPI specifications.
    • falcon: High-performance framework for cloud APIs.
    • fastapi: Modern, fast framework using standard Python type hints.
    • sanic: High-performance web server and framework.
    • strawberry: GraphQL library leveraging Python type annotations.
    • webargs: Library for parsing HTTP request arguments.
  10. Explore Game Development libraries

    master

    For building games in Python, the following frameworks are recommended:

    • arcade: Modern framework for graphics and sound.
    • panda3d: 3D game engine developed by Disney.
    • py-sdl2: ctypes wrapper for SDL2.
    • pygame: Set of modules for general game writing.
    • pyopengl: ctypes bindings for OpenGL.
    • renpy: Visual Novel engine.
  11. Explore Asynchronous and Concurrent programming

    master

    For non-blocking and parallel execution, use these libraries:

    • anyio: High-level async framework (works with asyncio or trio).
    • asyncio: (Standard Library) Core async I/O and event loop.
    • concurrent.futures: (Standard Library) High-level interface for asynchronous execution.
    • gevent: Coroutine-based networking using greenlet.
    • multiprocessing: (Standard Library) Process-based parallelism.
    • trio: Friendly async concurrency and I/O.
    • twisted: Event-driven networking engine.
    • uvloop: Ultra-fast asyncio event loop.
  12. Generate project documentation with Python libraries

    master

    Several libraries are available for generating documentation for Python projects:

    • diagrams: Uses 'Diagram as Code' approach.
    • mkdocs: A Markdown-friendly documentation generator.
    • pdoc: An Epydoc replacement that automatically generates API documentation for Python libraries.
    • sphinx: A widely used Python documentation generator (see also awesome-sphinxdoc).