🏆 A ranked list of awesome Python open-source libraries & tools. Updated weekly.
This curated list contains 300 awesome open-source projects with a total of 960K stars grouped into 26 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an issue, submit a pull request, or directly edit the projects.yaml. Contributions are very welcome!
🧙♂️ Discover other best-of lists or create your own.
📫 Subscribe to our newsletter for updates and trending projects.
- Data Serialization 15 projects
- Data Structures 14 projects
- Data Validation 13 projects
- Algorithms & Design Patterns 4 projects
- Date & Time Utilities 9 projects
- File & Path Utilities 9 projects
- Compatiblity 7 projects
- Cryptography 7 projects
- Infrastructure & DevOps 18 projects
- Process Utilities 4 projects
- Asynchronous Programming 6 projects
- Configuration 8 projects
- CLI Development 19 projects
- Development Tools 1 projects
- Data Caching 6 projects
- GUI Development 10 projects
- Computer & Machine Vision 1 projects
- Machine Learning & Data Engineering 1 projects
- Text Data 11 projects
- Web Development 1 projects
- Database Clients 61 projects
- Data Loading & Extraction 27 projects
- File Formats 3 projects
- Code Inspection 4 projects
- General Utilities 15 projects
- Python Implementations 6 projects
- Others 19 projects
- 🥇🥈🥉 Combined project-quality score
- ⭐️ Star count from GitHub
- 🐣 New project (less than 6 months old)
- 💤 Inactive project (6 months no activity)
- 💀 Dead project (12 months no activity)
- 📈📉 Project is trending up or down
- ➕ Project was recently added
- ❗️ Warning (e.g. missing/risky license)
- 👨💻 Contributors count from GitHub
- 🔀 Fork count from GitHub
- 📋 Issue count from GitHub
- ⏱️ Last update timestamp on package manager
- 📥 Download count from package manager
- 📦 Number of dependent projects
flatbuffers (🥇35 · ⭐ 17K) - FlatBuffers: Memory Efficient Serialization Library. Apache-2
simplejson (🥈34 · ⭐ 1.4K) - simplejson is a simple, fast, extensible JSON encoder/decoder for.. MIT
marshmallow (🥈32 · ⭐ 5.7K) - A lightweight library for converting complex objects to and from.. MIT
cloudpickle (🥈31 · ⭐ 1K) - Extended pickling support for Python objects. BSD-3
ultrajson (🥈30 · ⭐ 3.4K) - Ultra fast JSON decoder and encoder written in C with Python bindings. BSD-3
msgpack (🥉29 · ⭐ 1.5K) - MessagePack serializer implementation for Python msgpack.org[Python]. Apache-2
orjson (🥉28 · ⭐ 2.4K) - Fast, correct Python JSON library supporting dataclasses, datetimes,.. Apache-2
jsonpickle (🥉26 · ⭐ 960) - Python library for serializing any arbitrary object graph into JSON... BSD-3
python-rapidjson (🥉25 · ⭐ 430) - Python wrapper around rapidjson. MIT
pysimdjson (🥉23 · ⭐ 470) - Python bindings for the simdjson project. MIT
pyrsistent (🥇30 · ⭐ 1.6K) - Persistent/Immutable/Functional data structures for Python. MIT
python-sortedcontainers (🥇27 · ⭐ 2.3K) - Python Sorted Container Types: Sorted List, Sorted.. Apache-2
sqlitedict (🥈26 · ⭐ 710 · 💤) - Persistent dict, backed by sqlite3 and pickle, multithread-.. Apache-2
munch (🥈26 · ⭐ 510 · 💤) - A Munch is a Python dictionary that provides attribute-style access (a.. MIT
ordered-set (🥉25 · ⭐ 130) - A mutable set that remembers the order of its entries. One of.. MIT
python-box (🥉23 · ⭐ 1.7K) - Python dictionaries with advanced dot notation access. MIT
immutables (🥉23 · ⭐ 870) - A high-performance immutable mapping type for Python. Apache-2
python-benedict (🥉23 · ⭐ 270) - dict subclass with keylist/keypath support, normalized I/O.. MIT
Show 2 hidden projects...
- anytree (🥉24 · ⭐ 600 · 💀) - Python tree data library.
Apache-2
- cleverdict (🥉16 · ⭐ 83 · 💤) - A JSON-friendly data structure which allows both object attributes..
MIT
jsonschema (🥇32 · ⭐ 3.4K) - An(other) implementation of JSON Schema for Python. MIT
voluptuous (🥈28 · ⭐ 1.7K) - CONTRIBUTIONS ONLY: Voluptuous, despite the name, is a Python data.. BSD-3
schematics (🥉27 · ⭐ 2.4K) - Python Data Structures for Humans. BSD-3
validators (🥉25 · ⭐ 530) - Python Data Validation for Humans. MIT
strictyaml (🥉23 · ⭐ 930) - Type-safe YAML parser and validator. MIT
Show 2 hidden projects...
- valideer (🥉19 · ⭐ 250 · 💀) - Lightweight data validation and adaptation Python library.
MIT
- python-email-validator (🥉18 · ⭐ 460) - A robust email syntax and deliverability validation..
❗️CC0-1.0
🔗 python-patterns ( ⭐ 29K) - Collection of design patterns/idioms in Python.
transitions (🥇29 · ⭐ 3.9K) - A lightweight, object-oriented finite state machine implementation.. MIT
algorithms (🥉27 · ⭐ 20K) - Minimal examples of data structures and algorithms in Python. MIT
Show 1 hidden projects...
python-dateutil (🥇37 · ⭐ 1.7K) - Useful extensions to the standard Python datetime features. Apache-2
dateparser (🥈31 · ⭐ 1.9K) - python parser for human readable dates. BSD-3
parsedatetime (🥉26 · ⭐ 620) - Parse human-readable date/time strings. Apache-2
appdirs (🥈31 · ⭐ 790 · 💤) - A small Python module for determining appropriate platform-specific.. MIT
scandir (🥉29 · ⭐ 480) - Better directory iterator and faster os.walk(), now in the Python 3.5.. BSD-3
pyfilesystem2 (🥉26 · ⭐ 1.4K) - Python's Filesystem abstraction layer. MIT
Show 3 hidden projects...
typing (🥈30 · ⭐ 1K) - Python static typing home. Contains the source for typing_extensions.. Python-2.0
dataclasses (🥉26 · ⭐ 510 · 💤) - A backport of the dataclasses module for Python 3.6. Apache-2
Show 3 hidden projects...
- pathlib2 (🥉28 · ⭐ 65) - Backport of pathlib aiming to support the full stdlib Python API. As of..
MIT
- futures (🥉27 · ⭐ 220 · 💀) - Backport of the concurrent.futures package to Python 2.6 and 2.7.
Python-2.0
- contextlib2 (🥉27 · ⭐ 33) - contextlib2 is a backport of the standard library's contextlib..
❗️psfrag
pycryptodomex (🥇33 · ⭐ 1.7K) - A self-contained cryptographic library for Python. BSD-3
asn1crypto (🥈32 · ⭐ 240) - Python ASN.1 library with a focus on performance and a pythonic API. MIT
cryptography (🥈31 · ⭐ 4.3K) - cryptography is a package designed to expose cryptographic.. BSD-3
docker-compose (🥈36 · ⭐ 23K) - Define and run multi-container applications with Docker. Apache-2
paramiko (🥈34 · ⭐ 7.2K) - The leading native Python SSHv2 protocol library. ❗️LGPL-2.1
kubernetes (🥈32 · ⭐ 4.1K) - Official Python client library for kubernetes. Apache-2
ansible (🥉31 · ⭐ 50K) - Ansible is a radically simple IT automation platform that makes your.. ❗️GPL-3.0
pyinfra (🥉21 · ⭐ 1.4K) - pyinfra automates infrastructure super fast at massive scale. It can be.. MIT
Show 4 hidden projects...
- fabtools (🥉24 · ⭐ 1.2K · 💀) - Tools for writing awesome Fabric files.
BSD-2
- parallel-ssh (🥉22 · ⭐ 930) - Asynchronous parallel SSH client library.
❗️LGPL-2.1
- storm (🥉20 · ⭐ 3.8K · 💀) - Manage your SSH like a boss.
MIT
- wssh (🥉14 · ⭐ 1.3K · 💀) - SSH to WebSockets Bridge.
MIT
pexpect (🥇34 · ⭐ 2.1K) - A Python module for controlling interactive programs in a pseudo-terminal. ISC
supervisor (🥈32 · ⭐ 7K) - Supervisor process control system for UNIX. ❗️Repoze Public License
ptyprocess (🥉27 · ⭐ 140) - Run a subprocess in a pseudo terminal. ISC
anyio (🥈23 · ⭐ 470) - High level asynchronous concurrency and networking framework that works on.. MIT
Show 1 hidden projects...
python-dotenv (🥇34 · ⭐ 4.3K) - Get and set values in your .env file in local and production.. BSD-3
python-decouple (🥈29 · ⭐ 1.9K) - Strict separation of config from code. MIT
omegaconf (🥉28 · ⭐ 850) - Flexible Python configuration system. The last one you will ever need. BSD-3
gin-config (🥉26 · ⭐ 1.4K) - Gin provides a lightweight configuration framework for Python. Apache-2
rich (🥇33 · ⭐ 29K) - Rich is a Python library for rich text and beautiful formatting in the terminal. MIT
python-prompt-toolkit (🥇33 · ⭐ 7.3K) - Library for building powerful interactive command.. BSD-3
python-fire (🥈32 · ⭐ 20K) - Python Fire is a library for automatically generating command.. Apache-2
argcomplete (🥈30 · ⭐ 980) - Python and tab completion, better together. Apache-2
wcwidth (🥈30 · ⭐ 250) - Python library that measures the width of unicode strings rendered to a.. MIT
asciimatics (🥉27 · ⭐ 2.8K) - A cross platform package to do curses-like operations, plus.. Apache-2
ConfigArgParse (🥉26 · ⭐ 530) - A drop-in replacement for argparse that allows options to also be.. MIT
blessings (🥉24 · ⭐ 1.2K · 💤) - A thin, practical wrapper around terminal capabilities in Python. MIT
bashplotlib (🥉21 · ⭐ 1.6K) - plotting in the terminal. MIT
questionary (🥉20 · ⭐ 730 · 📉) - Python library to build pretty command line user prompts Easy to.. MIT
Show 4 hidden projects...
- docopt (🥈31 · ⭐ 7.5K · 💀) - Pythonic command line arguments parser, that will make you smile.
MIT
- clint (🥉26 · ⭐ 2.5K · 💀) - Python Command-line Application Tools.
ISC
- docopt-ng (🥉17 · ⭐ 55) - Humane command line arguments parser. Now with maintenance, typehints,..
MIT
- colout (🥉14 · ⭐ 1K · 💀) - Color text streams with a polished command line interface.
❗️GPL-3.0
🔗 best-of-python-dev ( ⭐ 340) - A ranked list of awesome python developer tools and libraries. Updated..
cached-property (🥇27 · ⭐ 610 · 💤) - A decorator for caching properties in classes. BSD-3
cachetools (🥈26 · ⭐ 1.1K) - Extensible memoizing collections and decorators. MIT
🔗 best-of-web-python - Web UI ( ⭐ 1.3K) - Collection of libraries to implement web-based UIs.
kivy (🥇34 · ⭐ 13K) - Open source UI framework written in Python, running on Windows, Linux, macOS,.. MIT
PySimpleGUI (🥈30 · ⭐ 8.2K) - PySimpleGUI is a Python package that enables Python.. ❗️LGPL-3.0
Gooey (🥈26 · ⭐ 15K) - Turn (almost) any Python command line program into a full GUI application.. MIT
DearPyGui (🥈26 · ⭐ 5.8K) - Dear PyGui: A fast and powerful Graphical User Interface Toolkit for.. MIT
Show 1 hidden projects...
- Phoenix (🥉17 · ⭐ 1.7K · 💤) - wxPython's Project Phoenix. A new implementation of..
❗Unlicensed
🔗 best-of-ml-python - Computer Vision ( ⭐ 5.7K) - Collection of computer vision and image processing..
🔗 best-of-ml-python ( ⭐ 5.7K) - A ranked list of awesome machine learning Python libraries. Updated..
🔗 best-of-ml-python - NLP ( ⭐ 5.7K) - Collection of text processing and NLP libraries.
chardet (🥇32 · ⭐ 1.6K) - Python character encoding detector. ❗️LGPL-2.1
python-slugify (🥈31 · ⭐ 1.1K) - Returns unicode slugs. MIT
phonenumbers (🥈28 · ⭐ 2.8K) - Python port of Google's libphonenumber. Apache-2
inflect (🥉25 · ⭐ 570) - Correctly generate plurals, ordinals, indefinite articles; convert numbers.. MIT
pyahocorasick (🥉24 · ⭐ 640) - Python module (C extension and plain python) implementing Aho-.. BSD-3
price-parser (🥉20 · ⭐ 200 · 💤) - Extract price amount and currency symbol from a raw text.. BSD-3
Show 3 hidden projects...
🔗 best-of-web-python ( ⭐ 1.3K) - A ranked list of awesome python libraries for web development. Updated..
Libraries for connecting to, operating, and querying databases.
SQLAlchemy (🥇38 · ⭐ 4.3K) - The Database Toolkit for Python. MIT
MongoEngine (🥇35 · ⭐ 3.6K) - A Python Object-Document-Mapper for working with MongoDB. MIT
kafka-python (🥇34 · ⭐ 4.5K) - Python client for Apache Kafka. Apache-2
google-cloud-storage (🥈32 · ⭐ 3.7K · 📉) - Google Cloud Client Library for Python. Apache-2
elasticsearch (🥈32 · ⭐ 3.4K) - Official Elasticsearch client library for Python. Apache-2
Prometheus Client (🥈32 · ⭐ 2.4K) - Prometheus instrumentation library for Python.. Apache-2
Cassandra Driver (🥈32 · ⭐ 1.3K) - DataStax Python Driver for Apache Cassandra. Apache-2
s3transfer (🥈32 · ⭐ 130) - Amazon S3 Transfer Manager for Python. Apache-2
Elasticsearch DSL (🥈31 · ⭐ 3.3K) - High level Python client for Elasticsearch. Apache-2
confluent-kafka-python (🥈31 · ⭐ 2.4K) - Confluent's Kafka Python Client. Apache-2
azure-storage-blob (🥈31 · ⭐ 2.1K) - This repository is for active development of the Azure SDK.. MIT
SQLAlchemy-Utils (🥈31 · ⭐ 820) - Various utility functions and datatypes for SQLAlchemy. BSD-3
python-bigquery (🥈31 · ⭐ 280) - Google BigQuery API client library. Apache-2
dataset (🥈29 · ⭐ 4.1K) - Easy-to-use data handling for SQL data stores with support for implicit.. MIT
google-cloud-bigtable (🥈29 · ⭐ 3.7K) - Google Cloud Bigtable API client library. Apache-2
PyPika (🥈29 · ⭐ 1.4K) - PyPika is a python SQL query builder that exposes the full richness.. Apache-2
py2neo (🥈29 · ⭐ 1K) - Py2neo is a comprehensive Neo4j driver library and toolkit for Python. Apache-2
redis-py-cluster (🥈29 · ⭐ 990) - Python cluster client for the official redis cluster. Redis.. MIT
Ibis (🥉28 · ⭐ 1.6K) - A pandas-like deferred expression system, with first-class SQL support. Apache-2
mysqlclient (🥉27 · ⭐ 2K) - MySQL database connector for Python (with Python 3 support). ❗️GPL-2.0
cx-Oracle (🥉27 · ⭐ 760 · 📈) - Python interface to Oracle Database conforming to the Python DB.. BSD-3
pandas-gbq (🥉26 · ⭐ 270) - Pandas Google BigQuery. BSD-3
tortoise-orm (🥉25 · ⭐ 2.4K) - Familiar asyncio ORM for python, built with relations in mind. Apache-2
HappyBase (🥉25 · ⭐ 570 · 💤) - A developer-friendly Python library to interact with Apache HBase. MIT
neo4j-driver (🥉24 · ⭐ 640) - Neo4j Bolt driver for Python. Apache-2
AWS Data Wrangler (🥉23 · ⭐ 2.1K) - Pandas on AWS - Easy integration with Athena, Glue,.. Apache-2
pandas
libcloud (🥉22 · ⭐ 1.8K · 📉) - Apache Libcloud is a Python library which hides differences.. Apache-2
ODMantic (🥉20 · ⭐ 390) - Async ODM (Object Document Mapper) for MongoDB based on python type hints. ISC
gsheets-db-api (🥉19 · ⭐ 160 · 💤) - A Python DB-API and SQLAlchemy dialect to Google Spreasheets. MIT
psycopg3 (🥉13 · ⭐ 440) - New generation PostgreSQL database adapter for the Python.. ❗️LGPL-3.0
-
GitHub (👨💻 7 · 🔀 21 · 📋 42 - 19% open · ⏱️ 23.09.2021):
git clone https://github.com/psycopg/psycopg3
Show 6 hidden projects...
- psycopg2 (🥇35 · ⭐ 2.3K) - PostgreSQL database adapter for the Python..
❗️BSD-3-Clause-Attribution
- mongo-connector (🥉26 · ⭐ 1.8K · 💀) - MongoDB data stream pipeline tools by YouGov (adopted..
Apache-2
- db.py (🥉22 · ⭐ 1.2K · 💀) - db.py is an easier way to interact with your databases.
BSD-2
- Queries (🥉20 · ⭐ 240 · 💀) - PostgreSQL database access simplified.
BSD-3
- lazydata (🥉17 · ⭐ 630 · 💀) - Lazydata: Scalable data dependencies for Python projects.
Apache-2
- SuperSQLite (🥉16 · ⭐ 680 · 💀) - A supercharged SQLite library for Python.
MIT
Libraries for loading, collecting, and extracting data from a variety of data sources and formats.
Datasets (🥇33 · ⭐ 9.9K · 📈) - The largest hub of ready-to-use datasets for ML models with.. Apache-2
xlwings (🥇33 · ⭐ 2.1K) - xlwings is a BSD-licensed Python library that makes it easy to call.. BSD-3
python-magic (🥈32 · ⭐ 2K) - A python wrapper for libmagic. MIT
smart-open (🥈30 · ⭐ 2.2K) - Utils for streaming large files (S3, HDFS, gzip, bz2...). MIT
csvkit (🥈29 · ⭐ 4.7K) - A suite of utilities for converting to and working with CSV, the king of.. MIT
gdown (🥈28 · ⭐ 1.3K) - Download a large file from Google Drive (curl/wget fails because of the.. MIT
snorkel (🥉27 · ⭐ 4.8K) - A system for quickly generating training data with weak supervision. Apache-2
pandas-datareader (🥉27 · ⭐ 2.1K) - Extract data from a wide range of Internet sources into a.. BSD-3
Intake (🥉26 · ⭐ 620) - Intake is a lightweight package for finding, investigating, loading and.. BSD-2
Singer (🥉24 · ⭐ 860) - Standard for moving data between databases, web APIs, files, queues,.. ❗️AGPL-3.0
tabulator-py (🥉22 · ⭐ 210) - Python library for reading and writing tabular data via streams. MIT
openpyxl (🥉21) - A Python library to read/write Excel 2010 xlsx/xlsm files. MIT
- PyPi (📥 16M / month · 📦 9.8K · ⏱️ 22.09.2021):
pip install openpyxl
- Conda (📥 58K · ⏱️ 13.03.2021):
conda install -c anaconda openpyxl
- Docker Hub (📥 1.2K · ⏱️ 13.09.2018):
docker pull openpyxl/openpyxl-ci
rows (🥉20 · ⭐ 770) - A common, beautiful interface to tabular data, no matter the format. ❗️LGPL-3.0
csvs-to-sqlite (🥉16 · ⭐ 640 · 💤) - Convert CSV files into a SQLite database. Apache-2
Show 4 hidden projects...
- xmltodict (🥈31 · ⭐ 4.5K · 💀) - Python module that makes working with XML feel like you are..
MIT
- PDFMiner (🥉27 · ⭐ 4.7K · 💀) - Python PDF Parser (Not actively maintained). Check out pdfminer.six.
MIT
- messytables (🥉23 · ⭐ 380 · 💀) - Tools for parsing messy tabular data. This is now superseded by..
MIT
- pyexcel-xlsx (🥉22 · ⭐ 89 · 💤) - A wrapper library to read, manipulate and write data in xlsx..
BSD-3
XlsxWriter (🥉31 · ⭐ 2.7K) - A Python module for creating Excel XLSX files. BSD-3
typing_inspect (🥈24 · ⭐ 220) - Runtime inspection utilities for Python typing module. MIT
Show 2 hidden projects...
- entrypoints (🥈24 · ⭐ 67 · 💀) - Discover and load entry points from installed packages.
MIT
- importlib-resources (🥉18 · ⭐ 16) - Read resources from Python packages.
Apache-2
more-itertools (🥇35 · ⭐ 2.1K) - More routines for operating on iterables, beyond itertools. MIT
python-dependency-injector (🥉27 · ⭐ 1.6K) - Dependency injection framework for Python. BSD-3
ubelt (🥉23 · ⭐ 580) - A Python utility belt containing simple tools, a stdlib like feel, and.. Apache-2
Show 4 hidden projects...
- retrying (🥉24 · ⭐ 1.7K · 💀) - Retrying is an Apache 2.0 licensed general-purpose retrying..
Apache-2
- ratelimit (🥉24 · ⭐ 420 · 💀) - API Rate Limit Decorator.
MIT
- pampy (🥉22 · ⭐ 3.4K · 💀) - Pampy: The Pattern Matching for Python you always dreamed of.
MIT
- CommonRegex (🥉21 · ⭐ 1.5K · 💀) - A collection of common regular expressions bundled with an easy..
MIT
pyston (🥇24 · ⭐ 1.7K · 🐣) - A faster and highly-compatible implementation of the Python.. Apache-2
-
GitHub (👨💻 1K · 🔀 53 · 📥 4.5K · 📋 39 - 28% open · ⏱️ 23.09.2021):
git clone https://github.com/pyston/pyston
Show 4 hidden projects...
- micropython (🥈23 · ⭐ 13K) - MicroPython - a lean and efficient Python implementation for..
❗Unlicensed
- grumpy (🥉16 · ⭐ 10K · 💀) - Grumpy is a Python to Go source code transcompiler and runtime.
Apache-2
- stackless (🥉11 · ⭐ 750) - The Stackless Python programming language.
❗Unlicensed
- cl-python (🥉11 · ⭐ 330 · 💀) - An implementation of Python in Common Lisp.
❗Unlicensed
cookiecutter (🥈31 · ⭐ 15K) - A command-line utility that creates projects from cookiecutters.. BSD-3
py4j (🥈30 · ⭐ 870 · 💤) - Py4J enables Python programs to dynamically access arbitrary Java objects. BSD-3
Send2Trash (🥉29 · ⭐ 180) - Python library to natively send files to Trash (or Recycle bin) on.. BSD-3
pyscaffold (🥉26 · ⭐ 1.2K) - Python project template generator with batteries included. MIT
pyscreenshot (🥉25 · ⭐ 420) - Python screenshot library, replacement for the Pillow ImageGrab.. BSD-2
pluginbase (🥉24 · ⭐ 980) - A simple but flexible plugin system for Python. BSD-3
python-mss (🥉24 · ⭐ 640) - An ultra fast cross-platform multiple screenshots module in pure.. MIT
Show 3 hidden projects...
- Best-of lists: Discover other best-of lists with awesome open-source projects on all kinds of topics.
- best-of-ml-python: A ranked list of awesome machine learning Python libraries.
- best-of-web-python: A ranked list of awesome Python libraries for web development.
- best-of-python-dev: A ranked list of awesome Python developer tools and libraries.
- awesome-python: A curated list of awesome Python frameworks, libraries, software and resources.
Contributions are encouraged and always welcome! If you like to add or update projects, choose one of the following ways:
- Open an issue by selecting one of the provided categories from the issue page and fill in the requested information.
- Modify the projects.yaml with your additions or changes, and submit a pull request. This can also be done directly via the Github UI.
If you like to contribute to or share suggestions regarding the project metadata collection or markdown generation, please refer to the best-of-generator repository. If you like to create your own best-of list, we recommend to follow this guide.
For more information on how to add or update projects, please read the contribution guidelines. By participating in this project, you agree to abide by its Code of Conduct.