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
- AI and Agents
- Deep Learning
- Machine Learning
- Natural Language Processing
- Computer Vision
- Recommender Systems
Web Development
- Web Frameworks
- Web APIs
- Web Servers
- WebSocket
- Template Engines
- Web Asset Management
- Authentication
- Admin Panels
- CMS
- Static Site Generators
HTTP & Scraping
Database & Storage
Data & Science
Developer Tools
- Algorithms and Design Patterns
- Interactive Interpreter
- Code Analysis
- Testing
- Debugging Tools
- Build Tools
- Documentation
DevOps
CLI & GUI
Text & Documents
Media
Python Language
- Implementations
- Built-in Classes Enhancement
- Functional Programming
- Asynchronous Programming
- Date and Time
Python Toolchain
Security
Miscellaneous
AI & ML
AI and Agents
Libraries for building AI applications, LLM integrations, and autonomous agents.
- Agent Skills
- django-ai-plugins - Django backend agent skills for Django, DRF, Celery, and Django-specific code review.
- sentry-skills - Python-focused engineering skills for code review, debugging, and backend workflows.
- trailofbits-skills - Python-friendly security skills for auditing, testing, and safer backend development.
- 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.
- jax - A library for high-performance numerical computing with automatic differentiation and JIT compilation.
- keras - A high-level deep learning library with support for JAX, TensorFlow, and PyTorch backends.
- pytorch-lightning - Deep learning framework to train, deploy, and ship AI products Lightning fast.
- pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.
- stable-baselines3 - PyTorch implementations of Stable Baselines (deep) reinforcement learning algorithms.
- tensorflow - The most popular Deep Learning framework created by Google.
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.
- easyocr - Ready-to-use OCR with 40+ languages supported.
- kornia - Open Source Differentiable Computer Vision Library for PyTorch.
- opencv - Open Source Computer Vision Library.
- pytesseract - A wrapper for Google Tesseract OCR.
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
- bottle - A fast and simple micro-framework distributed as a single file with no dependencies.
- django - The most popular web framework in Python.
- flask - A microframework for Python.
- pyramid - A small, fast, down-to-earth, open source Python web framework.
- fasthtml - The fastest way to create an HTML app.
- masonite - The modern and developer centric Python web framework.
- 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
- django-ninja - Fast, Django REST framework based on type hints and Pydantic.
- [django-rest-framework](https://github.com/encode/django-rest-framework) - A powerful and flexible toolkit to build web APIs.
- strawberry-django - Strawberry GraphQL integration with Django.
- Flask
- 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
- RPC
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.
- django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file.
- django-storages - A collection of custom storage back ends for Django.
Authentication
Libraries for implementing authentication schemes.
- OAuth
- authlib - JavaScript Object Signing and Encryption draft implementation.
- django-allauth - Authentication app for Django that "just works."
- django-oauth-toolkit - OAuth 2 goodies for Django.
- oauthlib - A generic and thorough implementation of the OAuth request-signing logic.
- JWT
- 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.
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.
- Relational Databases
- django.db.models - The Django ORM.
- sqlalchemy - The Python SQL Toolkit and Object Relational Mapper.
- dataset - Store Python dicts in a database - works with SQLite, MySQL, and PostgreSQL.
- peewee - A small, expressive ORM.
- pony - ORM that provides a generator-oriented interface to SQL.
- sqlmodel - SQLModel is based on Python type annotations, and powered by Pydantic and SQLAlchemy.
- tortoise-orm - An easy-to-use asyncio ORM inspired by Django, with relations support.
- NoSQL Databases
- beanie - An asynchronous Python object-document mapper (ODM) for MongoDB.
- mongoengine - A Python Object-Document-Mapper for working with MongoDB.
- pynamodb - A Pythonic interface for Amazon DynamoDB.
Database Drivers
Libraries for connecting and operating databases.
- MySQL - awesome-mysql
- mysqlclient - MySQL connector with Python 3 support (mysql-python fork).
- pymysql - A pure Python MySQL driver compatible to mysql-python.
- PostgreSQL - awesome-postgres
- psycopg - The most popular PostgreSQL adapter for Python.
- SQLite - awesome-sqlite
- sqlite-utils - Python CLI utility and library for manipulating SQLite databases.
- sqlite3 - (Python standard library) SQLite interface compliant with DB-API 2.0.
- Other Relational Databases
- clickhouse-driver - Python driver with native interface for ClickHouse.
- mssql-python - Official Microsoft driver for SQL Server and Azure SQL, built on ODBC for high performance and low memory usage.
- NoSQL 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.
Search
Libraries and software for indexing and performing search queries on data.
- django-haystack - Modular search for Django.
- elasticsearch-py - The official low-level Python client for Elasticsearch.
- pysolr - A lightweight Python wrapper for Apache Solr.
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
- cartopy - A cartographic python library with matplotlib support.
- pygraphviz - Python interface to Graphviz.
- Dashboards and Apps
- gradio - Build and share machine learning apps, all in Python.
- streamlit - A framework which lets you build dashboards, generate reports, or create chat apps in minutes.
truncated — full list on GitHub