Python

repo: vinta/awesome-python
category: Programming Languages related: Machine Learning · Data Science · Deep Learning · Flask · FastAPI


Awesome Python

An opinionated list of Python frameworks, libraries, tools, and resources.

Sponsors

The #10 most-starred repo on GitHub. Put your product in front of Python developers. Become a sponsor.

Categories

AI & ML

Web Development

HTTP & Scraping

Database & Storage

Data & Science

Developer Tools

DevOps

CLI & GUI

Text & Documents

Media

Python Language

Python Toolchain

Security

Miscellaneous


AI & ML

AI and Agents

Libraries for building AI applications, LLM integrations, and autonomous agents.

  • Agent Skills
  • Orchestration
    • autogen - A programming framework for building agentic AI applications.
    • crewai - A framework for orchestrating role-playing autonomous AI agents for collaborative task solving.
    • dspy - A framework for programming, not prompting, language models.
    • hermes-agent - An adaptive AI agent framework that grows with you.
    • langchain - Building applications with LLMs through composability.
    • pydantic-ai - A Python agent framework for building generative AI applications with structured schemas.
    • TradingAgents - A multi-agents LLM financial trading framework.
  • Data Layer
    • instructor - A library for extracting structured data from LLMs, powered by Pydantic.
    • llama-index - A data framework for your LLM application.
    • mem0 - An intelligent memory layer for AI agents enabling personalized interactions.
  • Pre-trained Models and Inference
    • diffusers - A library that provides pre-trained diffusion models for generating and editing images, audio, and video.
    • sglang - A high-performance serving framework for large language models and multimodal models.
    • transformers - A framework that lets you easily use pre-trained transformer models for NLP, vision, and audio tasks.
    • unsloth - A library for faster LLM fine-tuning and training with reduced memory usage.
    • vllm - A high-throughput and memory-efficient inference and serving engine for LLMs.

Deep Learning

Frameworks for Neural Networks and Deep Learning. Also see awesome-deep-learning.

Machine Learning

Libraries for Machine Learning. Also see awesome-machine-learning.

  • catboost - A fast, scalable, high performance gradient boosting on decision trees library.
  • feature_engine - sklearn compatible API with the widest toolset for feature engineering and selection.
  • h2o - Open Source Fast Scalable Machine Learning Platform.
  • lightgbm - A fast, distributed, high performance gradient boosting framework.
  • mindsdb - MindsDB is an open source AI layer for existing databases that allows you to effortlessly develop, train and deploy state-of-the-art machine learning models using standard queries.
  • pgmpy - A Python library for probabilistic graphical models and Bayesian networks.
  • scikit-learn - The most popular Python library for Machine Learning with extensive documentation and community support.
  • spark.ml - Apache Spark's scalable [Machine Learning library](https://spark.apache.org/docs/latest/ml-guide.html) for distributed computing.
  • TabGAN - Synthetic tabular data generation using GANs, Diffusion Models, and LLMs.
  • xgboost - A scalable, portable, and distributed gradient boosting library.

Natural Language Processing

Libraries for working with human languages.

  • General
    • gensim - Topic Modeling for Humans.
    • nltk - A leading platform for building Python programs to work with human language data.
    • spacy - A library for industrial-strength natural language processing in Python and Cython.
    • stanza - The Stanford NLP Group's official Python library, supporting 60+ languages.
  • Chinese

Computer Vision

Libraries for Computer Vision.

Recommender Systems

Libraries for building recommender systems.

  • annoy - Approximate Nearest Neighbors in C++/Python optimized for memory usage.
  • implicit - A fast Python implementation of collaborative filtering for implicit datasets.
  • scikit-surprise - A scikit for building and analyzing recommender systems.

Web Development

Web Frameworks

Traditional full stack web frameworks. Also see Web APIs.

  • Synchronous
  • Asynchronous
    • litestar - Production-ready, capable and extensible ASGI Web framework.
    • microdot - The impossibly small web framework for Python and MicroPython.
    • reflex - A framework for building reactive, full-stack web applications entirely with Python.
    • robyn - A high-performance async Python web framework with a Rust runtime.
    • starlette - A lightweight ASGI framework and toolkit for building high-performance async services.
    • tornado - A web framework and asynchronous networking library.

Web APIs

Libraries for building RESTful and GraphQL APIs.

  • Django
  • Flask
    • apiflask - A lightweight Python web API framework based on Flask and Marshmallow.
  • Framework Agnostic
    • connexion - A spec-first framework that automatically handles requests based on your OpenAPI specification.
    • falcon - A high-performance framework for building cloud APIs and web app backends.
    • fastapi - A modern, fast, web framework for building APIs with standard Python type hints.
    • sanic - A Python 3.6+ web server and web framework that's written to go fast.
    • strawberry - A GraphQL library that leverages Python type annotations for schema definition.
    • webargs - A friendly library for parsing HTTP request arguments with built-in support for popular web frameworks.

Web Servers

ASGI and WSGI compatible web servers.

  • ASGI
    • daphne - An HTTP, HTTP/2 and WebSocket protocol server for ASGI and ASGI-HTTP.
    • granian - A Rust HTTP server for Python applications built on top of Hyper and Tokio, supporting WSGI/ASGI/RSGI.
    • hypercorn - An ASGI and WSGI Server based on Hyper libraries and inspired by Gunicorn.
    • uvicorn - A lightning-fast ASGI server implementation, using uvloop and httptools.
  • WSGI
    • gunicorn - Pre-forked, ported from Ruby's Unicorn project.
    • uwsgi - A project aims at developing a full stack for building hosting services, written in C.
    • waitress - Multi-threaded, powers Pyramid.
  • RPC
    • grpcio - HTTP/2-based RPC framework with Python bindings, built by Google.
    • rpyc (Remote Python Call) - A transparent and symmetric RPC library for Python.

WebSocket

Libraries for working with WebSocket.

  • autobahn-python - WebSocket & WAMP for Python on Twisted and asyncio.
  • channels - Developer-friendly asynchrony for Django.
  • flask-socketio - Socket.IO integration for Flask applications.
  • picows - Fastest WebSocket clients and servers with a frame level interface for the most demanding use-cases.
  • websockets - A library for building WebSocket servers and clients with a focus on correctness and simplicity.

Template Engines

Libraries and tools for templating and lexing.

  • jinja - A modern and designer friendly templating language.
  • mako - Hyperfast and lightweight templating for the Python platform.

Web Asset Management

Tools for managing, compressing and minifying website assets.

Authentication

Libraries for implementing authentication schemes.

  • OAuth
  • JWT
    • pyjwt - JSON Web Token implementation in Python.
  • Permissions
    • django-guardian - Implementation of per object permissions for Django 1.2+
    • django-rules - A tiny but powerful app providing object-level permissions to Django, without requiring a database.

Admin Panels

Libraries for administrative interfaces.

  • ajenti - The admin panel your servers deserve.
  • django-grappelli - A jazzy skin for the Django Admin-Interface.
  • django-unfold - Elevate your Django admin with a stunning modern interface, powerful features, and seamless user experience.
  • flask-admin - Simple and extensible administrative interface framework for Flask.
  • flower - Real-time monitor and web admin for Celery.
  • func-to-web - Instantly create web UIs from Python functions using type hints. Zero frontend code required.
  • jet-bridge - Admin panel framework for any application with nice UI (ex Jet Django).

CMS

Content Management Systems.

  • django-cms - The easy-to-use and developer-friendly enterprise CMS powered by Django.
  • indico - A feature-rich event management system, made @ CERN.
  • wagtail - A Django content management system.

Static Site Generators

Static site generator is a software that takes some text + templates as input and produces HTML files on the output.

  • lektor - An easy to use static CMS and blog engine.
  • nikola - A static website and blog generator.
  • pelican - Static site generator that supports Markdown and reST syntax.

HTTP & Scraping

HTTP Clients

Libraries for working with HTTP.

  • aiohttp - Asynchronous HTTP client/server framework for asyncio and Python.
  • furl - A small Python library that makes parsing and manipulating URLs easy.
  • httpx - A next generation HTTP client for Python.
  • requests - HTTP Requests for Humans.
  • urllib3 - A HTTP library with thread-safe connection pooling, file post support, sanity friendly.

Web Scraping

Libraries to automate web scraping and extract web content.

  • Frameworks
    • browser-use - Make websites accessible for AI agents with easy browser automation.
    • crawl4ai - An open-source, LLM-friendly web crawler that provides lightning-fast, structured data extraction specifically designed for AI agents.
    • mechanicalsoup - A Python library for automating interaction with websites.
    • scrapy - A fast high-level screen scraping and web crawling framework.
  • Content Extraction
    • feedparser - Universal feed parser.
    • html2text - Convert HTML to Markdown-formatted text.
    • micawber - A small library for extracting rich content from URLs.
    • sumy - A module for automatic summarization of text documents and HTML pages.
    • trafilatura - A tool for gathering text and metadata from the web, with built-in content filtering.

Email

Libraries for sending and parsing email, and mail server management.

  • modoboa - A mail hosting and management platform including a modern Web UI.
  • yagmail - Yet another Gmail/SMTP client.

Database & Storage

ORM

Libraries that implement Object-Relational Mapping or data mapping techniques.

Database Drivers

Libraries for connecting and operating databases.

Database

Databases implemented in Python.

  • chromadb - An open-source embedding database for building AI applications with embeddings and semantic search.
  • duckdb - An in-process SQL OLAP database management system; optimized for analytics and fast queries, similar to SQLite but for analytical workloads.
  • pickledb - A simple and lightweight key-value store for Python.
  • tinydb - A tiny, document-oriented database.
  • ZODB - A native object database for Python. A key-value and object graph database.

Caching

Libraries for caching data.

  • cachetools - Extensible memoizing collections and decorators.
  • django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
  • dogpile.cache - dogpile.cache is a next generation replacement for Beaker made by the same authors.
  • python-diskcache - SQLite and file backed cache backend with faster lookups than memcached and redis.

Libraries and software for indexing and performing search queries on data.

Serialization

Libraries for serializing complex data types.

  • marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.
  • msgpack - MessagePack serializer implementation for Python.
  • orjson - Fast, correct JSON library.

Data & Science

Data Analysis

Libraries for data analysis.

  • General
    • aws-sdk-pandas - Pandas on AWS.
    • datasette - An open source multi-tool for exploring and publishing data.
    • desbordante - An open source data profiler for complex pattern discovery.
    • ibis - A portable Python dataframe library with a single API for 20+ backends.
    • modin - A drop-in pandas replacement that scales workflows by changing a single line of code.
    • pandas - A library providing high-performance, easy-to-use data structures and data analysis tools.
    • pathway - Real-time data processing framework for Python with reactive dataflows.
    • polars - A fast DataFrame library implemented in Rust with a Python API.
  • Financial Data
    • akshare - A financial data interface library, built for human beings!
    • edgartools - Library for downloading structured data from SEC EDGAR filings and XBRL financial statements.
    • lumibot - Algorithmic trading framework for backtesting and live deployment across stocks, options, crypto, futures, and forex.
    • openbb - A financial data platform for analysts, quants and AI agents.
    • yfinance - Easy Pythonic way to download market and financial data from Yahoo Finance.

Data Validation

Libraries for validating data. Used for forms in many cases.

  • cerberus - A lightweight and extensible data validation library.
  • jsonschema - An implementation of JSON Schema for Python.
  • pandera - A data validation library for dataframes, with support for pandas, polars, and Spark.
  • pydantic - Data validation using Python type hints.
  • voluptuous - A Python data validation library primarily intended for validating data from untrusted sources.

Data Visualization

Libraries for visualizing data. Also see awesome-javascript.

  • Plotting
    • altair - Declarative statistical visualization library for Python.
    • bokeh - Interactive Web Plotting for Python.
    • bqplot - Interactive Plotting Library for the Jupyter Notebook.
    • matplotlib - A Python 2D plotting library.
    • plotly - Interactive graphing library for Python.
    • plotnine - A grammar of graphics for Python based on ggplot2.
    • pygal - A Python SVG Charts Creator.
    • pyqtgraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
    • seaborn - Statistical data visualization using Matplotlib.
    • ultraplot - Matplotlib wrapper for publication-ready scientific figures with minimal code. Includes advanced subplot management, panel layouts, and batteries-included geoscience plotting.
    • vispy - High-performance scientific visualization based on OpenGL.
  • Specialized
  • Dashboards and Apps

truncated — full list on GitHub

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?