An opinionated list of Python frameworks, libraries, tools, and resources.
The #10 most-starred repo on GitHub. Put your product in front of Python developers. Become a sponsor.
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
Multimedia
Cryptography & Security
OS & System
Other
- Computer Vision
- Configuration Files
- Design Patterns
- Functional Programming
- Game Development
- Geolocation
- Hardware
- Package Management
- Package Repositories
- Robotics
- RPC Servers
- Websocket
- WSGI Servers
AI & ML
Frameworks and tools for building AI agents.
- agno - A lightweight library for building multi-modal Agents.
- autogen - A framework for building multi-agent conversational systems.
- browser-use - Make websites accessible for AI agents with easy browser automation.
- camel - A communicative agents framework for LLM role-playing scenarios.
- crewai - Framework for orchestrating role-playing, autonomous AI agents.
- dspy - The framework for programming—not prompting—foundation models.
- haystack - LLM orchestration framework to build customizable, production-ready LLM applications.
- langchain - Building applications with LLMs through composability.
- litellm - A library for calling Anthropic, Azure, Huggingface, Replicate API.
- lollms-webui - Lord of Large Language Multimodal Systems Web User Interface.
- mem0 - The memory layer for AI agents.
- metagpt - The multi-agent framework assigns different roles to GPTs to form a collaborative software entity.
- modelscope-agent - An agent framework connecting models in ModelScope with the world.
- openai-agents-sdk - A lightweight, powerful framework for multi-agent workflows.
- pydantic-ai - Agent framework built on top of Pydantic for production-grade Generative AI applications.
- semantic-kernel - Integrate cutting-edge LLM technology quickly and easily.
- smolagents - An extremely simple library that unleashes language models to tackle complex tasks.
- superagi - A dev-first open source autonomous AI agent framework.
Frameworks for neural networks and deep learning.
- caffe - A fast open framework made with expression, speed and modularity in mind.
- keras - A high-level neural networks library and capable of running on top of either TensorFlow or Theano.
- pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.
- ignite - High-level library to help with training neural networks in PyTorch.
- tensorflow - The most popular Deep Learning framework created by Google.
- tensorboard - TensorFlow's Visualization Toolkit.
- theano - A library for fast numerical computation.
Libraries for Machine Learning.
- gym - A toolkit for developing and comparing reinforcement learning algorithms.
- h2o - Open Source Fast Scalable Machine Learning Platform.
- 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 SQL queries.
- nni - An open source AutoML toolkit for automate machine learning lifecycle.
- scikit-learn - The most popular Python library for Machine Learning.
- spark - Apache Spark Python API.
- statsmodels - Statistical modeling and econometrics in Python.
- xgboost - A scalable, portable, and distributed gradient boosting library.
Libraries for working with human languages.
- Text Processing
- flair - Very simple framework for state-of-the-art NLP.
- gensim - Topic Modelling for humans.
- nltk - A leading platform for building Python programs to work with human language data.
- pattern - A web mining module for the Python.
- polyglot - Natural language pipeline supporting hundreds of languages.
- spacy - Industrial-strength Natural Language Processing (NLP) with Python and Cython.
- stanford-corenlp - A Python wrapper for Stanford CoreNLP.
- stanza - The Stanford NLP Group's official Python library, supporting 60+ languages.
- textdistance - Compute distance between sequences with 30+ algorithms.
- texthero - Text preprocessing, representation and visualization.
- textblob - Providing a consistent API for diving into common natural language processing (NLP) tasks.
- Chinese Text Processing
- jieba - The most popular Chinese text segmentation library.
- pkuseg-python - A toolkit for Chinese word segmentation in various domains.
- snownlp - A library for processing Chinese text.
- funNLP - A collection of NLP tools and datasets.
Libraries for Computer Vision.
- easyocr - Ready-to-use OCR with 80+ supported languages.
- kornia - Open Source Differentiable Computer Vision Library for PyTorch.
- opencv - Open Source Computer Vision Library.
- pytesseract - A wrapper for Google Tesseract-OCR.
- supervision - Reusable computer vision tools.
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.
- libffm - A library for Field-aware Factorization Machine (FFM).
- lightfm - A Python implementation of a number of popular recommendation algorithms.
- spotlight - Deep recommender models using PyTorch.
- surprise - A Python scikit for building and analyzing recommender systems.
- tensorrec - A Recommendation Engine Framework in TensorFlow.
Web Development
Traditional full stack web frameworks. Also see RESTful API.
- Synchronous
- Asynchronous
Libraries for building web APIs.
- django-rest-framework - A powerful and flexible toolkit to build web APIs.
- eve - REST API framework powered by Flask, MongoDB and good intentions.
- falcon - A high-performance Python framework for building cloud APIs and web app backends.
- fastapi - A modern, fast (high-performance), web framework for building APIs.
- flask-restful - Quickly building REST APIs for Flask.
- hug - A Python 3 framework for cleanly exposing APIs.
- sandman2 - Automated REST APIs for existing database-driven systems.
- connexion - Swagger/OpenAPI First framework for Python on top of Flask with automatic endpoint validation.
- ninja - Fast, async-ready, OpenAPI-compliant framework for building APIs with Django and Python type hints.
HTTP servers.
- gunicorn - Pre-forked, porting to Gevent and others.
- uvicorn - A lightning-fast ASGI server.
- waitress - Multi-threaded, powers Pyramid.
Libraries for working with WebSocket.
- autobahn-python - WebSocket & WAMP for Python on Twisted and asyncio.
- channels - Developer-friendly asynchronous support for Django.
- websockets - A library for building WebSocket servers and clients focusing on correctness and simplicity.
Libraries and tools for templating and lexing.
- jinja2 - A modern and designer friendly templating language.
- mako - Hyperfast and lightweight templating for the Python platform.
- marko - A markdown parser with high extensibility.
Tools for managing, compressing and minifying website assets.
- django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file.
- django-pipeline - An asset packaging library for Django.
- django-storages - A collection of custom storage backends for Django.
- fanstatic - Packages, optimizes, and serves static file dependencies as Python packages.
- fileconveyor - A daemon to detect and sync files to CDNs, S3 and FTP.
- flask-assets - Helps you integrate webassets into your Flask app.
- webassets - Bundles, optimizes, and manages unique cache-busting URLs for static resources.
Libraries for implementing authentications 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
- 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.
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).
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 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
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.
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
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.
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
- cassandra-driver - The Python Driver for Apache Cassandra.
- django-mongodb-backend - Official MongoDB database backend for Django.
- pymongo - The official Python client for MongoDB.
- redis-py - The Python client for Redis.
Databases implemented in Python.
- chromadb - An open-source embedding database for building AI applications with embeddings.
- 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.
Libraries for caching data.
- beaker - A WSGI middleware library for sessions and caching.
- dogpile.cache - dogpile.cache is a next generation replacement for Beaker made by the same authors.
- django-cache-machine - Automatic caching and invalidation for Django models.
- django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
- pymemcache - A comprehensive, fast, pure-Python memcached client.
- redis-py - The Python client for Redis.
- regional - Regional is a Python caching library.
Libraries and software for indexing and performing search queries on data.
- elasticsearch-py - The official low-level Python client for Elasticsearch.
- elasticsearch-dsl-py - The official high-level Python client for Elasticsearch.
- django-haystack - Modular search for Django.
- whoosh - A fast, pure Python search engine library.
Libraries for serializing complex data types.
- marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.
- pysimdjson - A Python bindings for simdjson.
- python-rapidjson - A Python wrapper around RapidJSON.
- ultrajson - Fast JSON decoder and encoder written in C with Python bindings.
Data & Science
Libraries for data analyzing.
- pandas - Flexible and powerful data analysis / manipulation library for Python.
- polars - A blazingly fast DataFrame library.
- optimus - Agile Data Science Workflows made easy with PySpark.
Libraries for validating data. Used for forms in many cases.
- cerberus - A lightweight and extensible data validation library.
- colander - Validating and deserializing data obtained via XML, JSON, an HTML Form post.
- jsonschema - An implementation of JSON Schema for Python.
- schema - A library for validating Python data structures.
- schematics - Data Structure Validation.
- voluptuous - A Python data validation library.
- pydantic - Data validation using Python type hints.
Libraries for visualizing data.
- altair - Declarative statistical visualization library for Python.
- bokeh - Interactive Web Plotting for Python.
- bqplot - Interactive Plotting Library for the Jupyter Notebook.
- cartopy - A cartographic python library with matplotlib support.
- diagrams - Diagram as Code.
- matplotlib - A Python 2D plotting library.
- plotly - Collaborative, interactive, publication-quality graphs.
- pygal - A Python SVG Charts Creator.
- pygraphviz - Python interface to Graphviz.
- pyqtgraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
- seaborn - Statistical data visualization using Matplotlib.
- vispy - High-performance scientific visualization based on OpenGL.
Libraries for geocoding addresses and working with latitudes and longitudes.
- django-countries - A Django app that provides country choices for use with forms, flag icons static files, and a country field for models.
- geodjango - A world-class geographic web framework.
- geopy - Python Geocoding Toolbox.
- gpxpy - A library for parsing and creating GPX files.
- shapely - Manipulation and analysis of geometric objects.
Libraries for scientific computing.
- astropy - A community Python library for Astronomy.
- biopython - Python tools for computational molecular biology.
- cclib - Parsers and algorithms for computational chemistry logfiles.
- nibabel - Provides read / write access to some common medical and neuroimaging file formats.
- nilearn - Machine learning for Neuro-Imaging in Python.
- open-babel - A chemical toolbox designed to speak the many languages of chemical data.
- pymatgen - A robust, open-source Python library for materials analysis.
- rdkit - Cheminformatics and Machine-Learning Software.
- statsmodels - Statistical modeling and econometrics in Python.
- sympy - A Python library for symbolic mathematics.
Libraries for Quantum Computing.
- cirq - A python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
- pennylane - A cross-platform Python library for differentiable programming of quantum computers.
- pyquil - A Python library for quantum programming using Quil.
- qiskit - An open-source framework for working with noisy quantum computers at the level of pulses, circuits, and algorithms.
Developer Tools
Python implementation of data structures, algorithms and design patterns. Also see awesome-algorithms.
- Algorithms
- algorithms - Minimal examples of data structures and algorithms in Python.
- python-ds - A collection of data structure and algorithms for coding interviews.
- sortedcontainers - Fast and pure-Python implementation of sorted collections.
- thealgorithms - All Algorithms implemented in Python.
- Design Patterns
- pypattyrn - A simple yet effective library for implementing common design patterns.
- python-patterns - A collection of design patterns in Python.
- transitions - A lightweight, object-oriented finite state machine implementation in Python.
Interactive Python interpreters (REPL).
- bpython - A fancy interface to the Python interpreter.
- ipython - A rich toolkit to help you make the most out of using Python interactively.
- ptpython - Advanced Python REPL built on top of the python-prompt-toolkit.
Tools of static analysis, linters and code quality checkers.
- flake8 - A wrapper around pyflakes, pycodestyle and McCabe.
- pylint - A fully customizable source code analyzer.
- pyflakes - A simple program which checks Python source files for errors.
- mypy - Check variable types during compile time.
- pycodestyle - (formerly
pep8) - A tool to check your Python code against some of the style conventions in PEP 8. - pydocstyle - A static analysis tool for checking compliance with Python docstring conventions.
- radon - A tool that computes various metrics from the source code.
- vulture - A tool for finding and analysing dead Python code.
Libraries for testing codebases and generating test data.
- Testing Frameworks
- hypothesis - Hypothesis is an advanced Quickcheck style property based testing library.
- nose2 - The successor to
nose, based onunittest2. - pytest - A mature full-featured Python testing tool.
- robot - A generic test automation framework.
- unittest - (Python standard library) Unit testing framework.
- Test Runners
- GUI / Web Testing
- locust - Scalable user load testing tool written in Python.
- playwright - Python version of the Playwright automated testing and scraping library.
- pyautogui - PyAutoGUI is a cross-platform GUI automation Python module for human beings.
- selenium - Python bindings for Selenium WebDriver.
- splinter - Open source tool for testing web applications.
- Mock
- doublex - Powerful test doubles framework for Python.
- freezegun - Travel through time by mocking the datetime module.
- httmock - A mocking library for requests for Python 2.6+ and 3.2+.
- httpretty - HTTP request mock tool for Python.
- moto - A library that allows you to easily mock out tests based on AWS Infrastructure.
- responses - A utility library for mocking out the requests Python library.
- vcrpy - Record and replay HTTP interactions on your tests.
- Object Factories
- factory_boy - A test fixtures replacement for Python.
- mixer - Another fixtures replacement. Supported Django, Flask, SQLAlchemy, Peewee and etc.
- model_bakery - Object factory for Django (rename of model_mommy).
- Code Coverage
- coverage - Code coverage measurement for Python.
- Fake Data
Libraries for debugging code.
- pdb-like Debugger
- Tracing
- manhole - Debugging UNIX socket connections and present all threads and waitress stacks and an interactive prompt.
- pyringe - Debugger capable of attaching to and injecting code into Python processes.
- python-hunter - A flexible code tracing toolkit.
- Profiler
- line_profiler - Line-by-line profiling.
- memory_profiler - Monitor Memory usage of Python code.
- py-spy - A sampling profiler for Python programs.
- Others
- django-debug-toolbar - Display various debug information for Django.
- flask-debugtoolbar - A port of the django-debug-toolbar to flask.
- icecream - Inspect variables, expressions, and program execution with a single, simple function call.
- pyelftools - Parsing and analyzing ELF files and DWARF debugging information.
Compile software from source code.
- bitbake - A make-like build tool for embedded Linux.
- invoke - A tool for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks.
- platformio - A console tool to build code with different development platforms.
- pybuilder - A continuous build tool written in pure Python.
- doit - A task runner and build tool.
- scons - A software construction tool.
Libraries for generating project documentation.
- sphinx - Python Documentation generator.
- diagrams - Diagram as Code.
- mkdocs - Markdown friendly documentation generator.
- pdoc - Epydoc replacement to auto generate API documentation for Python libraries.
DevOps
Software and libraries for DevOps.
- Cloud Providers
- Configuration Management
- ansible - A radically simple IT automation platform.
- SSH-style Deployment
- Process Management
- supervisor - A Process Control System.
- Monitoring
- psutil - A cross-platform process and system utilities module.
- Backup
- borgbackup - A deduplicating archiver with compression and encryption.
Frameworks and libraries for Distributed Computing.
- Batch Processing
- dask - A flexible parallel computing library for analytic computing.
- luigi - A module that helps you build complex pipelines of batch jobs.
- mrjob - Run MapReduce jobs on Hadoop or Amazon Web Services.
- prefect - A modern workflow orchestration framework.
- ray - A system for parallel and distributed Python that unifies the ML ecosystem.
- spark - Apache Spark Python API.
- Stream Processing
- faust - A stream processing library, porting the ideas from Kafka Streams to Python.
- streamparse - Run Python code against real-time streams of data via Apache Storm.
Libraries for working with task queues.
- celery - An asynchronous task queue/job queue based on distributed message passing.
- dramatiq - A fast and reliable background task processing library for Python 3.
- huey - Little multi-threaded task queue.
- mrq - A distributed worker task queue in Python using Redis & gevent.
- rq - Simple job queues for Python.
Libraries for scheduling jobs.
- apscheduler - Another Python Scheduler.
- django-celery-beat - A periodic task module for Celery.
- schedule - Python job scheduling for humans.
Libraries for generating and working with logs.
- logbook - Logging replacement for Python.
- loguru - Library which aims to bring enjoyable logging in Python.
- pyzmq - A Python interface to ZeroMQ.
- structlog - Structured Logging for Python.
- eliot - Logging for complex and distributed systems.
Tools and libraries for Virtual Networking and SDN (Software Defined Networking).
- mininet - A popular network emulator and API written in Python.
- napalm - Cross-vendor API to manipulate network devices.
- pox - A Python-based SDN control applications, such as OpenFlow SDN controllers.
CLI & GUI
Libraries for building command-line application.
- cement - CLI Application Framework for Python.
- click - A package for creating beautiful command line interfaces in a composable way.
- cliff - A framework for creating command-line programs with multi-level commands.
- docopt - Pythonic command line arguments parser.
- python-fire - A library for creating command line interfaces from absolutely any Python object.
- python-prompt-toolkit - A library for building powerful interactive command lines.
Useful CLI-based tools for productivity.
- Productivity Tools
- cookiecutter - A command-line utility that creates projects from cookiecutters (project templates).
- copier - A library and command-line utility for rendering projects templates.
- structkit - A YAML-first project scaffolding tool with remote content fetching (GitHub, S3, GCS, HTTP) and MCP integration for AI-native workflows.
- doitlive - A tool for live presentations in the terminal.
- thefuck - Correcting your previous console command.
- tmuxp - A tmux session manager.
- xonsh - A Python-powered shell. Full-featured and cross-platform.
- yt-dlp - A command-line program to download videos from YouTube and other video sites, a fork of youtube-dl.
- CLI Enhancements
- httpie - A command line HTTP client, a user-friendly cURL replacement.
- iredis - Redis CLI with autocompletion and syntax highlighting.
- litecli - SQLite CLI with autocompletion and syntax highlighting.
- mycli - MySQL CLI with autocompletion and syntax highlighting.
- pgcli - PostgreSQL CLI with autocompletion and syntax highlighting.
Libraries for working with graphical user interface applications.
- curses - Built-in wrapper for ncurses used to create terminal GUI applications.
- dearpygui - A Simple to use (but powerful) GUI framework for Python.
- eel - A little library for making simple Electron-like offline HTML/JS GUI apps.
- flexx - Write desktop and web apps in pure Python.
- kivy - Open source software for creating NUI applications.
- pyglet - A cross-platform windowing and multimedia library for Python.
- pygame - A set of Python modules designed for writing games.
- pyqt - Python bindings for the Qt cross-platform application and UI framework.
- pyqtgraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
- tkinter - Tkinter is Python's de-facto standard GUI package.
- toga - A Python native, OS native GUI toolkit.
- wxpython - A blending of the wxWidgets C++ class library with the Python.
Text & Documents
Libraries for parsing and manipulating plain texts.
- General
- chardet - Python 2/3 compatible character encoding detector.
- difflib - (Python standard library) Helpers for computing deltas.
- ftfy - Makes Unicode text less broken and more consistent automagically.
- fuzzywuzzy - Fuzzy String Matching.
- Levenshtein - Fast computation of Levenshtein distance and string similarity.
- shortuuid - A generator library for concise, unambiguous and URL-safe UUIDs.
- umalqurra - Date Format for Arabic letters.
- unidecode - ASCII transliterations of Unicode text.
- Slugify
- awesome-slugify - A Python slugify library that can preserve unicode.
- python-slugify - A Python slugify library that translates unicode to ASCII.
- unicode-slugify - A slugifier that generates unicode slugs with Django as a dependency.
- Unique identifiers
- Parser
- ply - Implementation of lex and yacc parsing tools for Python.
- pygments - A generic syntax highlighter.
- pyparsing - A general purpose framework for generating parsers.
- python-nameparser - Parsing human names into their individual components.
- python-phonenumbers - Parsing, formatting, storing and validating international phone numbers.
- python-user-agents - Browser user agent parser.
- sqlparse - A non-validating SQL parser.
Libraries for working with HTML and XML.
- beautifulsoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
- cssutils - A CSS library for Python.
- html5lib - A standards-compliant library for parsing and serializing HTML documents and fragments.
- lxml - A very fast, easy-to-use and versatile library for handling HTML and XML.
- markupsafe - Implements a XML/HTML/XHTML Markup safe string for Python.
- pyquery - A jQuery-like library for parsing HTML.
- untangle - Converts XML documents to Python objects for easy access.
- xmldataset - Simple XML Parsing.
- xmltodict - Working with XML feel like you are working with JSON.
Libraries and software for working with PDF files.
- pdfminer.six - Pdfminer.six is a community maintained fork of the original PDFMiner.
- pypdf - A pure-python PDF library capable of splitting, merging and transforming PDF pages.
- reportlab - Allowing Rapid creation of rich PDF documents.
- weasyprint - A visual rendering engine for HTML and CSS that can export to PDF.
Libraries for parsing and modifying office documents.
- docxtpl - Editing a docx document by jinja2 template.
- openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
- pyexcel - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and xlsm files.
- python-docx - Reads, queries and modifies Microsoft Word 2007/2008 docx files.
- python-pptx - Python library for creating and updating PowerPoint (.pptx) files.
- unoconv - Convert between any document format supported by LibreOffice/OpenOffice.
- xlrd - Library for developers to extract data from Microsoft Excel spreadsheet files.
- xlsxwriter - A Python module for creating Excel .xlsx files.
- xlwings - A BSD-licensed library that makes it easy to call Python from Excel and vice versa.
- xlwt - Library to write data and formatting information to older Excel files.
Libraries for working with Markdown.
- markdown - Python implementation of John Gruber's Markdown.
- markdown-it-py - Markdown parser with 100% CommonMark support, extensions, syntax plugins and high performance.
- marko - A markdown parser with high extensibility.
- mistune - Fastest and yet powerful Python Markdown parser.
- pymarkdown - Markdown linter/formatter.
Multimedia
Libraries for manipulating audio and its metadata.
- audioread - Cross-library audio decoding.
- dejavu - Audio fingerprinting and recognition.
- librosa - Python library for audio and music analysis.
- mutagen - A Python module to handle audio metadata.
- pyaudio - PyAudio provides Python bindings for PortAudio.
- pydub - Manipulate audio with a simple and easy high level interface.
- pyechonest - Python client for the Echo Nest API.
- tinytag - Library for reading music meta data of audio files.
Libraries for manipulating images.
- imgaug - Image augmentation for machine learning experiments.
- pillow - The friendly PIL fork.
- python-barcode - Create barcodes in Python with no extra dependencies.
- pymatting - A library for alpha matting.
- python-qrcode - A pure Python QR Code generator.
- quads - Computer art based on quadtrees.
- scikit-image - A collection of algorithms for image processing.
- thumbor - A smart imaging service. It enables on-demand crop, re-sizing and flipping of images.
- wand - Python bindings for MagickWand, C API for ImageMagick.
Libraries for manipulating video and GIFs.
- moviepy - A module for script-based movie editing with many formats.
- scikit-video - Video processing routines for SciPy.
- vidgear - Most Powerful multi-threaded Video Processing framework.
Cryptography & Security
- cryptography - A package designed to expose cryptographic recipes and primitives to Python developers.
- paramiko - The leading native Python SSHv2 protocol library.
- pynacl - Python binding to the Networking and Cryptography (NaCl) library.
Tools and libraries for security
- bandit - A tool designed to find common security issues in Python code.
- sqlmap - Automatic SQL injection and database takeover tool.
OS & System
Libraries that allow you to access specific functionality of the operating system.
- barman - Backup and recovery manager for PostgreSQL.
- opsy - A Flask app which enables cross-environment monitoring data aggregation.
- pywin32 - Python Extensions for Windows.
- systemd - Python bindings for systemd facilities, including journald and login.
Libraries for file manipulation and MIME type detection.
- mimetypes - (Python standard library) Map filenames to MIME types.
- path - A module wrapper for os.path.
- pathlib - (Python standard library) An cross-platform, object-oriented path library.
- pathspec - A utility library for gitignore style pattern matching of file paths.
- watchdog - API and shell utilities to monitor file system events.
- zxpy - Run shell commands from within Python files.
Libraries for working with dates and times.
- arrow - A Python library that offers a sensible and human-friendly approach to creating, manipulating, formatting and converting dates, times and timestamps.
- dateutil - Extensions to the standard Python datetime module.
- moment - A Python library for dealing with dates/times. Inspired by Moment.js.
- pendulum - Python datetimes made easy.
- pytz - World timezone definitions, modern and historical.
- when.py - Providing user-friendly functions to help perform common date and time actions.
Libraries for working with i18n.
- babel - An integrated collection of utilities that assist in internationalizing and localizing Python applications.
- pyicu - A wrapper of International Components for Unicode C++ library (ICU).
Libraries for migrating from Python 2 to 3.
- modernize - Modernizes Python code for eventual Python 3 migration.
- six - Python 2 and 3 compatibility utilities.
Pythonic event system.
- blinker - A fast Python in-process signal/event dispatching system.
- kombu - A message queue library for Python.
- pyinotify - A module for monitoring filesystems events on Linux systems based on inotify kernel subsystem.
- pymitter - A small Python port of the Node.js EventEmitter.
- python-socketio - A Socket.IO server implemented in Python.
- zope.event - An event publishing system for Python.
Libraries for starting and communicating with OS processes.
- dagger - An engine to run your pipelines in containers.
- delegator.py - Subprocesses for Humans 2.0.
- sarge - Yet another wrapper for subprocess.
- sh - A full-fledged subprocess replacement for Python.
Libraries for concurrent and parallel execution. Also see awesome-asyncio.
- concurrent.futures - (Python standard library) A high-level interface for asynchronously executing callables.
- eventlet - Asynchronous framework with WSGI support.
- gevent - A coroutine-based Python networking library that uses greenlet.
- multiprocessing - (Python standard library) Process-based parallelism.
- trio - A friendly library for async concurrency and I/O.
- twisted - An event-driven networking engine.
- uvloop - Ultra fast asyncio event loop.
Other
Libraries for storing and parsing configuration options.
- configobj - Config file reader and writer for Python.
- configparser - (Python standard library) INI file parser.
- dynaconf - A dynamic data structures based Python settings.
- hydra - Hydra is a framework for elegantly configuring complex applications.
- profig - Config from multiple formats with value conversion.
- python-decouple - Strict separation of config from code.
Libraries for implementing design patterns.
- pypattyrn - A simple yet effective library for implementing common design patterns.
- python-patterns - A collection of design patterns in Python.
- transitions - A lightweight, object-oriented finite state machine implementation in Python.
Functional Programming with Python.
- coconut - A variant of Python built for simple, elegant, Pythonic functional programming.
- cytoolz - Cython implementation of Toolz: High performance functional utilities.
- fn.py - Functional programming in Python: implementation of missing features to enjoy FP.
- funcy - A fancy and practical functional tools.
- more-itertools - More routines for operating on iterables, beyond itertools.
- returns - A set of primitives to write declarative business logic.
- toolz - A collection of functional utilities for iterables, functions, and dictionaries.
Awesome game development libraries.
- arcade - Easy to use Python library for creating 2D arcade games.
- cocos2d - cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications.
- pygame - A set of Python modules designed for writing games.
- pyglet - A cross-platform windowing and multimedia library for Python.
- pysdl2 - A wrapper around the SDL2 library.
Libraries for programming with hardware.
- ino - Command line toolkit for working with Arduino.
- keyboard - Hook and simulate global keyboard events on Windows and Linux.
- mouse - Hook and simulate global mouse events on Windows and Linux.
- pynput - A library to control and monitor input devices.
- pyserial - Python serial port access library.
- raspberry-gpio-python - A module to control Raspberry Pi GPIO channels.
- scapy - A brilliant packet manipulation library.
Libraries for package and dependency management.
- pip - The package installer for Python.
- poetry - Python dependency management and packaging made easy.
- uv - An extremely fast Python package installer and resolver, written in Rust.
Local PyPI repository server and proxies.
- bandersnatch - PyPI mirror tool provided by PyPA.
- devpi - PyPI server and packaging/testing/release tool.
- localshop - Local PyPI server (custom packages and auto-mirroring of pypi).
Libraries for robotics.
- PythonRobotics - This is a compilation of various robotics algorithms with visualizations.
- rospy - ROS Python client library.
RPC-compatible servers.
- RPyC (Remote Python Call) - A transparent and symmetric RPC library for Python.
- zeroRPC - zerorpc is a flexible RPC implementation based on ZeroMQ and MessagePack.
Libraries for working with WebSocket.
- autobahn-python - WebSocket & WAMP for Python on Twisted and asyncio.
- channels - Developer-friendly asynchronous support for Django.
- websockets - A library for building WebSocket servers and clients focusing on correctness and simplicity.
WSGI-compatible web servers.