A curated list of awesome Python frameworks, libraries, software and resources.
Inspired by awesome-php.
- Awesome Python
- Admin Panels
- Algorithms and Design Patterns
- Audio
- Authentication
- Build Tools
- Built-in Classes Enhancement
- Caching
- ChatOps Tools
- CMS
- Code Analysis
- Command-line Tools
- Compatibility
- Computer Vision
- Concurrency and Parallelism
- Configuration
- Cryptography
- Data Analysis
- Data Validation
- Data Visualization
- Database Drivers
- Database
- Date and Time
- Debugging Tools
- Deep Learning
- DevOps Tools
- Distributed Computing
- Distribution
- Documentation
- Downloader
- E-commerce
- Editor Plugins and IDEs
- Environment Management
- Files
- Foreign Function Interface
- Forms
- Functional Programming
- Game Development
- Geolocation
- GUI
- Hardware
- HTML Manipulation
- HTTP
- Image Processing
- Implementations
- Interactive Interpreter
- Internationalization
- Job Scheduler
- Logging
- Machine Learning
- Miscellaneous
- Natural Language Processing
- Network Virtualization
- Networking
- News Feed
- ORM
- Package Management
- Package Repositories
- Permissions
- Processes
- Queue
- Recommender Systems
- RESTful API
- Robotics
- RPC Servers
- Science
- Search
- Serialization
- Serverless Frameworks
- Specific Formats Processing
- Static Site Generator
- Tagging
- Template Engine
- Testing
- Text Processing
- Third-party APIs
- URL Manipulation
- Video
- Web Asset Management
- Web Content Extracting
- Web Crawling & Web Scraping
- Web Frameworks
- WebSocket
- WSGI Servers
- Services
- Resources
- Other Awesome Lists
- Contributing
Libraries for administrative interfaces.
5616
ajenti - The admin panel your servers deserve.3792
django-xadmin - Drop-in replacement of Django admin comes with lots of goodies.3636
flower - Real-time monitor and web admin for Celery.3591
flask-admin - Simple and extensible administrative interface framework for Flask.1751
django-suit - Alternative Django Admin-Interface (free only for Non-commercial use).1243
wooey - A Django app which creates automatic web UIs for Python scripts.737
django-grappelli - A jazzy skin for the Django Admin-Interface.
Python implementation of algorithms and design patterns.
20473
python-patterns - A collection of design patterns in Python.14929
algorithms - Minimal examples of data structures and algorithms in Python.8751
sortedcontainers - Fast, pure-Python implementation of SortedList, SortedDict, and SortedSet types.782
PyPattyrn - A simple yet effective library for implementing common design patterns.
Libraries for manipulating audio and its metadata.
- Audio
4446
dejavu - Audio fingerprinting and recognition.3504
pydub - Manipulate audio with a simple and easy high level interface.2357
pyAudioAnalysis - Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications261
audioread - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.243
TimeSide - Open web audio processing framework.0
mingus - An advanced music theory and notation package with MIDI file and playback support.
- Metadata
8670
beets - A music library manager and MusicBrainz tagger.441
mutagen - A Python module to handle audio metadata.337
tinytag - A library for reading music meta data of MP3, OGG, FLAC and Wave files.152
eyeD3 - A tool for working with audio files, specifically MP3 files containing ID3 metadata.
Libraries for implementing authentications schemes.
- OAuth
4561
django-allauth - Authentication app for Django that "just works."2853
python-oauth2 - A fully tested, abstract interface to creating OAuth clients and servers.2774
python-social-auth - An easy-to-setup social authentication mechanism.1777
oauthlib - A generic and thorough implementation of the OAuth request-signing logic.1588
django-oauth-toolkit - OAuth 2 goodies for Django.1040
authlib - JavaScript Object Signing and Encryption draft implementation.
- JWT
2674
pyjwt - JSON Web Token implementation in Python.519
python-jose - A JOSE implementation in Python.156
python-jwt - A module for generating and verifying JSON Web Tokens.
Compile software from source code.
3080
PlatformIO - A console tool to build code with different development platforms.1093
pybuilder - A continuous build tool written in pure Python.483
SCons - A software construction tool.441
buildout - A build system for creating, assembling and deploying applications from multiple parts.0
BitBake - A make-like build tool for embedded Linux.
Libraries for enhancing Python built-in classes.
24142
dataclasses - (Python standard library) Data classes.2526
attrs - Replacement for__init__
,__eq__
,__repr__
, etc. boilerplate in class definitions.1206
Box - Python dictionaries with advanced dot notation access.422
bidict - Efficient, Pythonic bidirectional map data structures and related functionality..62
DottedDict - A library that provides a method of accessing lists and dicts with a dotted path notation.
Content Management Systems.
7171
wagtail - A Django content management system.3800
mezzanine - A powerful, consistent, and flexible content management platform.2041
quokka - Flexible, extensible, small CMS powered by Flask and MongoDB.757
feincms - One of the most advanced Content Management Systems built on Django.332
Kotti - A high-level, Pythonic web application framework built on Pyramid.118
django-cms - An Open source enterprise CMS based on the Django.0
plone - A CMS built on top of the open source application server Zope.
Libraries for caching data.
2156
HermesCache - Python caching library with tag-based invalidation and dogpile effect prevention.1038
django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.735
django-cache-machine - Automatic caching and invalidation for Django models.427
python-diskcache - SQLite and file backed cache backend with faster lookups than memcached and redis.406
pylibmc - A Python wrapper around the libmemcached interface.401
beaker - A WSGI middleware for sessions and caching.0
dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors.
Libraries for chatbot development.
2005
errbot - The easiest and most popular chatbot to implement ChatOps.
Tools of static analysis, linters and code quality checkers. See: awesome-static-analysis.
- Code Analysis
2780
coala - Language independent and easily extendable code analysis application.1290
pycallgraph - A library that visualises the flow (call graph) of your Python application.1106
prospector - A tool to analyse Python code.599
code2flow - Turn your Python and JavaScript code into DOT flowcharts.
- Code Linters
2156
flake8 - A wrapper aroundpycodestyle
,pyflakes
and McCabe.2069
pylint - A fully customizable source code analyzer.563
pylama - A code audit tool for Python and JavaScript. Code Formatters9355
black - The uncompromising Python code formatter.9182
yapf - Yet another Python code formatter from Google.
- Static Type Checkers
6070
mypy - Check variable types during compile time.2596
pyre-check - Performant type checking.
- Static Type Annotations Generators
2180
MonkeyType - A system for Python that generates static type annotations by collecting runtime types
Libraries for building command-line application.
- Command-line Application Development
14047
python-fire - A library for creating command line interfaces from absolutely any Python object.7504
click - A package for creating beautiful command line interfaces in a composable way.5411
python-prompt-toolkit - A library for building powerful interactive command lines.2499
clint - Python Command-line Application Tools.822
cement - CLI Application Framework for Python.0
cliff - A framework for creating command-line programs with multi-level commands.0
docopt - Pythonic command line arguments parser.
- Terminal Rendering
1567
colorama - Cross-platform colored terminal text.1405
asciimatics - A package to create full-screen text UIs (from interactive forms to ASCII animations).1190
bashplotlib - Making basic plots in the terminal.
- Productivity Tools
43677
thefuck - Correcting your previous console command.9477
cookiecutter - A command-line utility that creates projects from cookiecutters (project templates).7203
howdoi - Instant coding answers via the command line.4104
PathPicker - Select files out of bash output.2725
percol - Adds flavor of interactive selection to the traditional pipe concept on UNIX.2416
doitlive - A tool for live presentations in the terminal.2412
tmuxp - A tmux session manager.487
try - A dead simple CLI to try out python packages - it's never been easier.
- CLI Enhancements
41126
httpie - A command line HTTP client, a user-friendly cURL replacement.7892
pgcli - Postgres CLI with autocompletion and syntax highlighting.7517
mycli - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.3998
saws - A Supercharged aws-cli.1240
kube-shell - An integrated shell for working with the Kubernetes CLI.
Libraries for migrating from Python 2 to 3.
1002
python-future - The missing compatibility layer between Python 2 and Python 3.516
python-modernize - Modernizes Python code for eventual Python 3 migration.479
six - Python 2 and 3 compatibility utilities.
Libraries for computer vision.
34649
OpenCV - Open Source Computer Vision Library.2299
SimpleCV - An open source framework for building computer vision applications.2093
pytesseract - Another wrapper for Google Tesseract OCR.
Libraries for concurrent and parallel execution. See awesome-asyncio.
24142
concurrent.futures - (Python standard library) A high-level interface for asynchronously executing callables.24142
multiprocessing - (Python standard library) Process-based parallelism.5885
uvloop - Ultra fast implementation ofasyncio
event loop on top oflibuv
.4661
gevent - A coroutine-based Python networking library that uses greenlet.796
eventlet - Asynchronous framework with WSGI support.381
scoop - Scalable Concurrent Operations in Python.
Libraries for storing and parsing configuration options.
24142
configparser - (Python standard library) INI file parser.2884
profig - Config from multiple formats with value conversion.993
python-decouple - Strict separation of settings from code.187
configobj - INI file parser with validation.
5285
paramiko - A Python (2.6+, 3.3+) implementation of the SSHv2 protocol, providing both client and server functionality.2750
cryptography - A package designed to expose cryptographic primitives and recipes to Python developers.596
pynacl - Python binding to the Networking and Cryptography (NaCl) library.0
passlib - Secure password storage/hashing library, very high level.
Libraries for data analyzing.
19492
Pandas - A library providing high-performance, easy-to-use data structures and data analysis tools.2655
Blaze - NumPy and Pandas interface to Big Data.1781
Orange - Data mining, data visualization, analysis and machine learning through visual programming or scripts.989
Open Mining - Business Intelligence (BI) in Pandas interface.626
Optimus - Cleansing, pre-processing, feature engineering, exploratory data analysis and easy Machine Learning with a PySpark backend.
Libraries for validating data. Used for forms in many cases.
52615
Dash - Built on top of Flask, React and Plotly aimed at analytical web applications.2263
jsonschema - An implementation of JSON Schema for Python.2185
Schematics - Data Structure Validation.1749
schema - A library for validating Python data structures.1644
Cerberus - A lightweight and extensible data validation library.1461
voluptuous - A Python data validation library.357
colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.346
awesome-dash
225
valideer - Lightweight extensible data validation and adaptation library.
Libraries for visualizing data. See: awesome-javascript.
9405
Bokeh - Interactive Web Plotting for Python.9235
Matplotlib - A Python 2D plotting library.6046
Seaborn - Statistical data visualization using Matplotlib.3787
Altair - Declarative statistical visualization library for Python.3468
ggplot - Same API as ggplot2 for R.2345
bqplot - Interactive Plotting Library for the Jupyter Notebook2156
PyGraphviz - Python interface to Graphviz.2061
Pygal - A Python SVG Charts Creator.2000
VisPy - High-performance scientific visualization based on OpenGL.1532
PyQtGraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
Databases implemented in Python.
2855
tinydb - A tiny, document-oriented database.371
pickleDB - A simple and lightweight key-value store for Python.311
ZODB - A native object database for Python. A key-value and object graph database.
Libraries for connecting and operating databases.
- MySQL - awesome-mysql
5029
PyMySQL - A pure Python MySQL driver compatible to mysql-python.1455
mysqlclient - MySQL connector with Python 3 support (mysql-python fork).
- PostgreSQL - awesome-postgres
- Other Relational Databases
431
pymssql - A simple database interface to Microsoft SQL Server.
- NoSQL Databases
7445
redis-py - The Python client for Redis.2995
kafka-python - The Python client for Apache Kafka.2735
pymongo - The official Python client for MongoDB.1035
cassandra-driver - The Python Driver for Apache Cassandra.457
happybase - A developer-friendly library for Apache HBase.0
py2neo - Python wrapper client for Neo4j's restful interface.
- Asynchronous Clients
1218
motor - The async Python driver for MongoDB.118
txRedis - Twisted based client for Redis.103
txpostgres - Twisted based asynchronous driver for PostgreSQL.94
Telephus - Twisted based client for Cassandra.
Libraries for working with dates and times.
3302
Pendulum - Python datetimes made easy.2922
maya - Datetimes for Humans, Maya is mostly built around the headaches and use-cases around parsing datetime data from websites.1559
delorean - A library for clearing up the inconvenient truths that arise dealing with datetimes.958
dateutil - Extensions to the standard Python datetime module.819
pytz - World timezone definitions, modern and historical. Brings the tz database into Python.575
moment - A Python library for dealing with dates/times. Inspired by Moment.js.281
Chronyk - A Python 3 library for parsing human-written times and dates.177
when.py - Providing user-friendly functions to help perform common date and time actions.129
PyTime - A easy-use Python module which aims to operate date/time/datetime by string.
Libraries for debugging code.
- pdb-like Debugger
- Tracing
1515
pyringe - Debugger capable of attaching to and injecting code into Python processes.638
lptrace - strace for Python programs.372
python-hunter - A flexible code tracing toolkit.209
manhole - Debug service that will accept unix domain socket connections and present the stacktraces for all threads and an interactive prompt.
- Profiler
3823
py-spy - A sampling profiler for Python programs. Written in Rust.3464
vprof - Visual Python profiler.2868
profiling - An interactive Python profiler.2792
line_profiler - Line-by-line profiling.2278
pyflame - A ptracing profiler For Python.32
memory_profiler - Monitor Memory usage of Python code.
- Others
5393
django-debug-toolbar - Display various debug information for Django.1294
icecream - Inspect variables, expressions, and program execution with a single, simple function call.1248
django-devserver - A drop-in replacement for Django's runserver.808
pyelftools - Parsing and analyzing ELF files and DWARF debugging information.694
flask-debugtoolbar - A port of the django-debug-toolbar to flask.
Frameworks for Neural Networks and Deep Learning. See: awesome-deep-learning.
127439
tensorflow - The most popular Deep Learning framework created by Google.41078
keras - A high-level neural networks library and capable of running on top of either TensorFlow or Theano.28066
caffe - A fast open framework for deep learning..27967
pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.16852
mxnet - A deep learning framework designed for both efficiency and flexibility.8785
Theano - A library for fast numerical computation.5189
SerpentAI - Game agent framework. Use any video game as a deep learning sandbox.
Software and libraries for DevOps.
37071
ansible - A radically simple IT automation platform.16064
docker-compose - Fast, isolated development environments using Docker.11256
fabric - A simple, Pythonic tool for remote execution and deployment.9896
saltstack - Infrastructure automation and management system.5292
supervisor - Supervisor process control system for UNIX.4842
psutil - A cross-platform process and system utilities module.2884
cloudinit - A multi-distribution package that handles early initialization of a cloud instance.1517
pexpect - Controlling interactive programs in a pseudo-terminal like GNU expect.1238
cuisine - Chef-like functionality for Fabric.1237
honcho - A Python clone of Foreman, for managing Procfile-based applications.1189
fabtools - Tools for writing awesome Fabric files.0
OpenStack - Open source software for building private and public clouds.
Frameworks and libraries for Distributed Computing.
- Batch Processing
21794
PySpark - Apache Spark Python API.11523
luigi - A module that helps you build complex pipelines of batch jobs.7003
Ray - A system for parallel and distributed Python that unifies the machine learning ecosystem.4799
dask - A flexible parallel computing library for analytic computing.2406
mrjob - Run MapReduce jobs on Hadoop or Amazon Web Services.
- Stream Processing
3171
faust - A stream processing library, porting the ideas from Kafka Streams to Python.1372
streamparse - Run Python code against real-time streams of data via Apache Storm.
Libraries to create packaged executables for release distribution.
5340
PyInstaller - Converts Python programs into stand-alone executables (cross-platform).2006
Nuitka - Compile scripts, modules, packages to an executable or extension module.1294
dh-virtualenv - Build and distribute a virtualenv as a Debian package.542
pynsist - A tool to build Windows installers, installers bundle Python itself.0
py2app - Freezes Python scripts (Mac OS X).0
py2exe - Freezes Python scripts (Windows).
Libraries for generating project documentation.
2565
sphinx - Python Documentation generator.664
pycco - The literate-programming-style documentation generator.582
pdoc - Epydoc replacement to auto generate API documentation for Python libraries.
Libraries for downloading.
24262
you-get - A YouTube/Youku/Niconico video downloader written in Python 3.2972
s3cmd - A command line tool for managing Amazon S3 and CloudFront.857
s4cmd - Super S3 command line tool, good for higher performance.0
youtube-dl - A small command-line program to download videos from YouTube.
Frameworks and libraries for e-commerce and payments.
3733
django-oscar - An open-source e-commerce framework for Django.1853
django-shop - A Django based shop system.930
shoop - An open source E-Commerce platform based on Django.921
merchant - A Django app to accept payments from various payment processors.589
Cartridge - A shopping cart app built using the Mezzanine.319
alipay - Unofficial Alipay API for Python.238
forex-python - Foreign exchange rates, Bitcoin price index and currency conversion.158
money - Money class with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution.39
python-currencies - Display money format and its filthy currencies.0
saleor - An e-commerce storefront for Django.
- Emacs
1405
elpy - Emacs Python Development Environment.
- Sublime Text
1963
anaconda - Anaconda turns your Sublime Text 3 in a full featured Python development IDE.866
SublimeJEDI - A Sublime Text plugin to the awesome auto-complete library Jedi.
- Vim
19025
YouCompleteMe - Includes Jedi-based completion engine for Python.4641
python-mode - An all in one plugin for turning Vim into a Python IDE.3958
jedi-vim - Vim bindings for the Jedi auto-completion library for Python.
- Visual Studio
2150
PTVS - Python Tools for Visual Studio.
- Visual Studio Code
1423
Python - An extension with rich support for the Python language, with features including linting, IntelliSense, formatting, refactoring, debugging, unit tests, and jupyter support.
- IDE
Libraries for sending and parsing email.
3474
Nylas Sync Engine - Providing a RESTful API on top of a powerful email sync platform.1453
inbox.py - Python SMTP Server for Humans.1380
yagmail - Yet another Gmail/SMTP client.1301
flanker - A email address and Mime parsing library.1291
modoboa - A mail hosting and management platform including a modern and simplified Web UI.833
imbox - Python IMAP for Humans.669
lamson - Pythonic SMTP Application Server.164
Marrow Mailer - High-performance extensible mail delivery framework.0
envelopes - Mailing for human beings.
Libraries for Python version and environment management.
24142
venv - (Python standard library in Python 3.3+) Creating lightweight virtual environments.16894
pipenv - Sacred Marriage of Pipfile, Pip, & Virtualenv.15317
pyenv - Simple Python version management.4396
poetry - Python dependency management and packaging made easy.3055
virtualenv - A tool to create isolated Python environments.
Libraries for file manipulation and MIME type detection.
24142
mimetypes - (Python standard library) Map filenames to MIME types.24142
pathlib - (Python standard library) An cross-platform, object-oriented path library.3472
watchdog - API and shell utilities to monitor file system events.1355
python-magic - A Python interface to the libmagic file type identification library.875
PyFilesystem2 - Python's filesystem abstraction layer.862
path.py - A module wrapper for os.path.484
Unipath - An object-oriented approach to file/directory operations.
Libraries for providing foreign function interface.
24142
ctypes - (Python standard library) Foreign Function Interface for Python calling C code.2156
cffi - Foreign Function Interface for Python calling C code.0
PyCUDA - A Python wrapper for Nvidia's CUDA API.0
SWIG - Simplified Wrapper and Interface Generator.
Libraries for working with forms.
3531
django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant and DRY way.2109
django-bootstrap3 - Bootstrap 3 integration with Django.943
WTForms - A flexible forms validation and rendering library.519
django-bootstrap4 - Bootstrap 4 integration with Django.317
Deform - Python HTML form generation library influenced by the formish form generation library.189
django-remote-forms - A platform independent Django form serializer.
Functional Programming with Python.
2827
fn.py - Functional programming in Python: implementation of missing features to enjoy FP.2429
Coconut - Coconut is a variant of Python built for simple, elegant, Pythonic functional programming.2286
Toolz - A collection of functional utilities for iterators, functions, and dictionaries.2049
funcy - A fancy and practical functional tools.606
CyToolz - Cython implementation of Toolz: High performance functional utilities.
Libraries for working with graphical user interface applications.
24142
curses - Built-in wrapper for ncurses used to create terminal GUI applications.6682
Gooey - Turn command line programs into a full GUI application with one line.2711
Eel - Little library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.2013
Flexx - Flexx is a pure Python toolkit for creating GUI's, that uses web technology for its rendering.1976
Toga - A Python native, OS native GUI toolkit.1568
urwid - A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc.1474
PySimpleGUI - Wrapper for tkinter, Qt, WxPython and Remi that creates a unified, easy to understand & more Python-like interface for beginner and intermediate level custom GUIs.1346
pywebview - A lightweight cross-platform native wrapper around a webview component that allows to display HTML content in its own native dedicated window.1031
wxPython - A blending of the wxWidgets C++ class library with the Python.757
enaml - Creating beautiful user-interfaces with Declaratic Syntax like QML.0
PySide - Python bindings for the Qt cross-platform application and UI framework, supporting the Qt v4 framework.0
PyGObject - Python Bindings for GLib/GObject/GIO/GTK+ (GTK+3).0
pyglet - A cross-platform windowing and multimedia library for Python.0
Tkinter - Tkinter is Python's de-facto standard GUI package.0
kivy - A library for creating NUI applications, running on Windows, Linux, Mac OS X, Android and iOS.0
PyQt - Python bindings for the Qt cross-platform application and UI framework, with support for both Qt v4 and Qt v5 frameworks.
Awesome game development libraries.
13152
Cocos2d - cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is based on pyglet.1590
Panda3D - 3D game engine developed by Disney and maintained by Carnegie Mellon's Entertainment Technology Center. Written in C++, completely wrapped in Python.80
PySDL2 - A ctypes based wrapper for the SDL2 library.0
Harfang3D - Python framework for 3D, VR and game development. Manage and display complex 3D scenes, with physics, video, sound and music, access VR devices. All written in C++.0
PyOgre - Python bindings for the Ogre 3D render engine, can be used for games, simulations, anything 3D.0
PyOpenGL - Python ctypes bindings for OpenGL and it's related APIs.0
RenPy - A Visual Novel engine.0
Pygame - Pygame is a set of Python modules designed for writing games.
Libraries for geocoding addresses and working with latitudes and longitudes.
2430
geopy - Python Geocoding Toolbox.675
django-countries - A Django app that provides country choices for use with forms, flag icons static files, and a country field for models.480
pygeoip - Pure Python GeoIP API.418
geojson - Python bindings and utilities for GeoJSON.190
GeoIP - Python API for MaxMind GeoIP Legacy Database.0
GeoDjango - A world-class geographic web framework.
Libraries for working with HTML and XML.
3456
xmltodict - Working with XML feel like you are working with JSON.2736
WeasyPrint - A visual rendering engine for HTML and CSS that can export to PDF.2156
cssutils - A CSS library for Python.1731
bleach - A whitelist-based HTML sanitization and text linkification library.1694
pyquery - A jQuery-like library for parsing HTML.1435
lxml - A very fast, easy-to-use and versatile library for handling HTML and XML.774
html5lib - A standards-compliant library for parsing and serializing HTML documents and fragments.402
untangle - Converts XML documents to Python objects for easy access.260
MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python.0
BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.0
xmldataset - Simple XML Parsing.
Libraries for working with HTTP.
3016
grequests - requests + gevent for asynchronous HTTP requests.1983
requests - HTTP Requests for Humans‚Ñ¢.1983
urllib3 - A HTTP library with thread-safe connection pooling, file post support, sanity friendly.471
treq - Python requests like API built on top of Twisted's HTTP client.308
httplib2 - Comprehensive HTTP client library.
Libraries for programming with hardware.
3843
scapy - A brilliant packet manipulation library.1421
keyboard - Hook and simulate global keyboard events on Windows and Linux.1056
ino - Command line toolkit for working with Arduino.843
PyUserInput - A module for cross-platform control of the mouse and keyboard.244
wifi - A Python library and command line tool for working with WiFi on Linux.184
mouse - Hook and simulate global mouse events on Windows and Linux.0
Pingo - Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel Galileo, etc.
Libraries for manipulating images.
6853
thumbor - A smart imaging service. It enables on-demand crop, re-sizing and flipping of images.6189
pillow - Pillow is the friendly PIL fork.2981
scikit-image - A Python library for (scientific) image processing.1768
python-qrcode - A pure Python QR Code generator.873
wand - Python bindings for MagickWand, C API for ImageMagick.851
Quads - Computer art based on quadtrees.647
nude.py - Nudity detection.166
hmap - Image histogram remapping.135
pagan - Retro identicon (Avatar) generation based on input string and hash.79
pygram - Instagram-like image filters.0
imgSeek - A project for searching a collection of images using visual similarity.0
pyBarcode - Create barcodes in Python without needing PIL.
Implementations of Python.
24142
CPython - Default, most widely used implementation of the Python programming language written in C.9683
Grumpy - More compiler than interpreter as more powerful CPython2.7 replacement (alpha).8407
MicroPython - MicroPython - a lean and efficient Python programming language implementation for microcontrollers and constrained systems4483
Pyston - A Python implementation built using LLVM and modern JIT techniques with the goal of achieving good performance.4089
Numba - Python JIT compiler to LLVM aimed at scientific Python.4075
Cython - Optimizing Static Compiler for Python. Uses type mixins to compile Python into C or C++ modules resulting in large performance gains1279
PeachPy - x86-64 assembler embedded in Python. Can be used as inline assembler for Python or as a stand-alone assembler for Windows, Linux, OS X, Native Client and Go.1269
Pyjion - A JIT for Python based upon CoreCLR.870
IronPython - Implementation of the Python programming language written in C# targeting the .NET Framework and Mono.384
Stackless Python - An enhanced version of the Python programming language which allows programmers to reap the benefits of thread-based programming without the performance and complexity problems associated with conventional threads.340
PySec - Hardened version of python that makes it easier for security professionals and developers to write applications more resilient to attacks and manipulations.268
CLPython - Implementation of the Python programming language written in Common Lisp.0
PyPy - Implementation of the Python programming language written in RPython and translated into C. PyPy focuses on speed, efficiency and compatibility with the original CPython interpreter. The interpreter uses black magic to make Python very fast without having to add in additional type information.0
Jython - Implementation of Python programming language written in Java for the Java virtual machine (JVM).
Interactive Python interpreters (REPL).
4554
Jupyter Notebook (IPython) - A rich toolkit to help you make the most out of using Python interactively.3217
ptpython - Advanced Python REPL built on top of the python-prompt-toolkit.1236
bpython - A fancy interface to the Python interpreter.1006
awesome-jupyter
Libraries for working with i18n.
803
Babel - An internationalization library for Python.90
PyICU - A wrapper of International Components for Unicode C++ library (ICU).
Libraries for scheduling jobs.
12194
Airflow - Airflow is a platform to programmatically author, schedule and monitor workflows.6028
schedule - Python job scheduling for humans.1853
APScheduler - A light but powerful in-process task scheduler that lets you schedule functions.1074
Plan - Writing crontab file in Python like a charm.760
Spiff - A powerful workflow engine implemented in pure Python.745
django-schedule - A calendaring app for Django.682
gunnery - Multipurpose task execution tool for distributed systems with web-based interface.600
doit - A task runner and build tool.0
Joblib - A set of tools to provide lightweight pipelining in Python.0
TaskFlow - A Python library that helps to make task execution easy, consistent and reliable.
Libraries for generating and working with logs.
24142
logging - (Python standard library) Logging facility for Python.1633
raven - Python client for Sentry, a log/error tracking, crash reporting and aggregation platform for web applications.1318
logbook - Logging replacement for Python.540
Eliot - Logging for complex & distributed systems.
Libraries for Machine Learning. See: awesome-machine-learning.
15917
xgboost - A scalable, portable, and distributed gradient boosting library.5905
NuPIC - Numenta Platform for Intelligent Computing.4012
H2O - Open Source Fast Scalable Machine Learning Platform.1117
Metrics - Machine learning evaluation metrics.597
Spark ML - Apache Spark's scalable Machine Learning library.144
vowpal_porpoise - A lightweight Python wrapper for Vowpal Wabbit.0
scikit-learn - The most popular Python library for Machine Learning.
Python programming on Microsoft Windows.
7192
pythonlibs - Unofficial Windows binaries for Python extension packages.1556
PythonNet - Python Integration with the .NET Common Language Runtime (CLR).1382
PyWin32 - Python Extensions for Windows.0
Python(x,y) - Scientific-applications-oriented Python Distribution based on Qt and Spyder.0
WinPython - Portable development environment for Windows 7/8.
Useful libraries or tools that don't fit in the categories above.
4795
boltons - A set of pure-Python utilities.1724
itsdangerous - Various helpers to pass trusted data to untrusted environments.893
blinker - A fast Python in-process signal/event dispatching system.796
pluginbase - A simple but flexible plugin system for Python.0
tryton - A general purpose business framework.
Libraries for working with human languages.
- General
13286
spacy - A library for industrial-strength natural language processing in Python and Cython.9174
gensim - Topic Modelling for Humans.7731
nltk - A leading platform for building Python programs to work with human language data.6948
pattern - A web mining module for the Python.4945
pytext - A natural language modeling framework based on PyTorch.1840
stanfordnlp - The Stanford NLP Group's official Python library, supporting 50+ languages.1301
langid.py - Stand-alone language identification system.1298
PyTorch-NLP - A toolkit enabling rapid deep learning NLP prototyping for research.1249
polyglot - Natural language pipeline supporting hundreds of languages.
- Chinese
18519
jieba - The most popular Chinese text segmentation library.7810
funNLP - A collection of tools and datasets for Chinese NLP.4062
snownlp - A library for processing Chinese text.3492
pkuseg-python - A toolkit for Chinese word segmentation in various domains.
Tools and libraries for Virtual Networking and SDN (Software Defined Networking).
2778
mininet - A popular network emulator and API written in Python.440
pox - A Python-based SDN control applications, such as OpenFlow SDN controllers.
Libraries for networking programming.
24142
asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.3342
Twisted - An event-driven networking engine.2178
pyzmq - A Python wrapper for the ZeroMQ message library.1749
pulsar - Event-driven concurrent framework for Python.1468
awesome-asyncio
1216
napalm - Cross-vendor API to manipulate network devices.
Libraries for building user's activities.
4019
Stream Framework - Building newsfeed and notification systems using Cassandra and Redis.1550
django-activity-stream - Generating generic activity streams from the actions on your site.
Libraries that implement Object-Relational Mapping or data mapping techniques.
- Relational Databases
6416
peewee - A small, expressive ORM.3523
dataset - Store Python dicts in a database - works with SQLite, MySQL, and PostgreSQL.1853
awesome-sqlalchemy
1794
pony - ORM that provides a generator-oriented interface to SQL.879
orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.864
SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper.263
pydal - A pure Python Database Abstraction Layer.0
Django Models - A part of Django.
- NoSQL Databases
2734
mongoengine - A Python Object-Document-Mapper for working with MongoDB.915
PynamoDB - A Pythonic interface for Amazon DynamoDB.423
redisco - A Python Library for Simple Models and Containers Persisted in Redis.249
hot-redis - Rich Python data types for Redis.
Libraries for package and dependency management.
5391
pip - The Python package and dependency manager.3310
pip-tools - A set of tools to keep your pinned Python dependencies fresh.
2910
conda - Cross-platform, Python-agnostic binary package manager.2156
PyPI
Local PyPI repository server and proxies.
2156
warehouse - Next generation Python Package Repository (PyPI).350
localshop - Local PyPI server (custom packages and auto-mirroring of pypi).264
devpi - PyPI server and packaging/testing/release tool.92
bandersnatch - PyPI mirroring tool provided by Python Packaging Authority (PyPA).
Libraries that allow or deny users access to data or functionality.
2226
django-guardian - Implementation of per object permissions for Django 1.2+864
django-rules - A tiny but powerful app providing object-level permissions to Django, without requiring a database.
Libraries for starting and communicating with OS processes.
4953
sh - A full-fledged subprocess replacement for Python.2884
sarge - Yet another wrapper for subprocess.1305
delegator.py - Subprocesses for Humans‚Ñ¢ 2.0.
Libraries for working with event and task queues.
12340
celery - An asynchronous task queue/job queue based on distributed message passing.5535
rq - Simple job queues for Python.2267
huey - Little multi-threaded task queue.756
mrq - Mr. Queue - A distributed worker task queue in Python using Redis & gevent.
Libraries for building recommender systems.
5353
annoy - Approximate Nearest Neighbors in C++/Python optimized for memory usage.3096
Surprise - A scikit for building and analyzing recommender systems.2475
lightfm - A Python implementation of a number of popular recommendation algorithms.1657
spotlight - Deep recommender models using PyTorch.1466
implicit - A fast Python implementation of collaborative filtering for implicit datasets.1188
libffm - A library for Field-aware Factorization Machine (FFM).844
tensorrec - A Recommendation Engine Framework in TensorFlow.734
fastFM - A library for Factorization Machines.
Libraries for developing RESTful APIs.
- Django
14027
django-rest-framework - A powerful and flexible toolkit to build web APIs.3497
django-tastypie - Creating delicious APIs for Django apps.
- Flask
5622
eve - REST API framework powered by Flask, MongoDB and good intentions.4689
flask-restful - Quickly building REST APIs for Flask.1057
flask-api - Browsable Web APIs for Flask.971
flask-restless - Generating RESTful APIs for database models defined with SQLAlchemy.50
flask-api-utils - Taking care of API representation and authentication for Flask.
- Pyramid
345
cornice - A RESTful framework for Pyramid.
- Framework agnostic
6602
falcon - A high-performance framework for building cloud APIs and web app backends.5721
hug - A Python3 framework for cleanly exposing APIs over HTTP and the Command Line with automatic documentation and validation.5167
apistar - A smart Web API framework, designed for Python 3.2311
sandman - Automated REST APIs for existing database-driven systems.747
restless - Framework agnostic REST framework based on lessons learned from Tastypie.190
ripozo - Quickly creating REST/HATEOAS/Hypermedia APIs.
Libraries for robotics.
5549
PythonRobotics - This is a compilation of various robotics algorithms with visualizations.368
rospy - This is a library for ROS (Robot Operating System).
RPC-compatible servers.
24142
SimpleXMLRPCServer - (Python standard library) Simple XML-RPC server implementation, single-threaded.2433
zeroRPC - zerorpc is a flexible RPC implementation based on ZeroMQ and MessagePack.392
SimpleJSONRPCServer - This library is an implementation of the JSON-RPC specification.
Libraries for scientific computing.
8751
Zipline - A Pythonic algorithmic trading library.5829
SymPy - A Python library for symbolic mathematics.5654
NetworkX - A high-productivity software for complex networks.4181
PyMC - Markov Chain Monte Carlo sampling toolkit.3885
statsmodels - Statistical modeling and econometrics in Python.2070
astropy - A community Python library for Astronomy.678
Colour - A colour science package implementing a comprehensive number of colour theory transformations and algorithms.674
bcbio-nextgen - Providing best-practice pipelines for fully automated high throughput sequencing analysis.504
ObsPy - A Python toolbox for seismology.440
bccb - Collection of useful code related to biological analysis.158
PyDy - Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion.8
cclib - A library for parsing and interpreting the results of computational chemistry packages.0
Open Babel - A chemical toolbox designed to speak the many languages of chemical data.0
QuTiP - Quantum Toolbox in Python.0
RDKit - Cheminformatics and Machine Learning Software.0
SciPy - A Python-based ecosystem of open-source software for mathematics, science, and engineering.0
NumPy - A fundamental package for scientific computing with Python.0
Biopython - Biopython is a set of freely available tools for biological computation.0
NIPY - A collection of neuroimaging toolkits.0
SimPy - A process-based discrete-event simulation framework.
Libraries and software for indexing and performing search queries on data.
40984
elasticsearch-py - The official low-level Python client for Elasticsearch.2884
whoosh - A fast, pure Python search engine library.2717
django-haystack - Modular search for Django.2386
elasticsearch-dsl-py - The official high-level Python client for Elasticsearch.501
pysolr - A lightweight Python wrapper for Apache Solr.
Libraries for serializing complex data types
3579
marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.293
python-rapidjson - A Python wrapper around RapidJSON.155
pysimdjson - A Python bindings for simdjson.
Frameworks for developing serverless Python code.
9103
Zappa - A tool for deploying WSGI applications on AWS Lambda and API Gateway.931
python-lambda - A toolkit for developing and deploying Python code in AWS Lambda.
Libraries for parsing and manipulating specific text formats.
- General
3434
tablib - A module for Tabular Datasets in XLS, CSV, JSON, YAML.
- Office
2884
openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.1835
XlsxWriter - A Python module for creating Excel .xlsx files.1660
python-docx - Reads, queries and modifies Microsoft Word 2007/2008 docx files.1529
unoconv - Convert between any document format supported by LibreOffice/OpenOffice.1347
xlwings - A BSD-licensed library that makes it easy to call Python from Excel and vice versa.870
xlwt / xlrd - Writing and reading data and formatting information from Excel files.779
python-pptx - Python library for creating and updating PowerPoint (.pptx) files.642
pyexcel - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and xlsm files.
- Markdown
1749
Python-Markdown - A Python implementation of John Gruber’s Markdown.1488
Mistune - Fastest and full featured pure Python parsers of Markdown.
- YAML
695
PyYAML - YAML implementations for Python.
- CSV
3767
csvkit - Utilities for converting to and working with CSV.
- Archive
343
unp - A command line tool that can unpack archives easily.
Static site generator is a software that takes some text + templates as input and produces HTML files on the output.
8754
pelican - Static site generator that supports Markdown and reST syntax.7622
mkdocs - Markdown friendly documentation generator.3042
lektor - An easy to use static CMS and blog engine.1696
nikola - A static website and blog generator.
Libraries for tagging items.
2115
django-taggit - Simple tagging for Django.
Libraries and tools for templating and lexing.
6142
Jinja2 - A modern and designer friendly templating language.25
Mako - Hyperfast and lightweight templating for the Python platform.0
Genshi - Python templating toolkit for generation of web-aware output.
Libraries for testing codebases and generating test data.
- Testing Frameworks
24142
unittest - (Python standard library) Unit testing framework.4116
pytest - A mature full-featured Python testing tool.3463
hypothesis - Hypothesis is an advanced Quickcheck style property based testing library.3312
Robot Framework - A generic test automation framework.554
nose2 - The successor tonose
, based on `unittest2.
- Test Runners
- GUI / Web Testing
14327
Selenium - Python bindings for Selenium WebDriver.10017
locust - Scalable user load testing tool written in Python.2682
PyAutoGUI - PyAutoGUI is a cross-platform GUI automation Python module for human beings.2009
splinter - Open source tool for testing web applications.1557
sixpack - A language-agnostic A/B Testing framework.
- Mock
24142
mock - (Python standard library) A mocking and patching library.2333
responses - A utility library for mocking out the requests Python library.1930
freezegun - Travel through time by mocking the datetime module.1680
httpretty - HTTP request mock tool for Python.1402
VCR.py - Record and replay HTTP interactions on your tests.372
httmock - A mocking library for requests for Python 2.6+ and 3.2+.147
Mocket - Socket Mock Framework plus HTTP[S]/asyncio/gevent mocking library with recording/replaying capability.1
doublex - Powerful test doubles framework for Python.
- Object Factories
1781
factory_boy - A test fixtures replacement for Python.900
model_mommy - Creating random fixtures for testing in Django.595
mixer - Another fixtures replacement. Supported Django, Flask, SQLAlchemy, Peewee and etc.
- Code Coverage
734
coverage - Code coverage measurement.
- Fake Data
- Error Handler
3406
FuckIt.py - FuckIt.py uses state-of-the-art technology to make sure your Python code runs whether it has any right to or not.
Libraries for parsing and manipulating plain texts.
- General
24142
difflib - (Python standard library) Helpers for computing deltas.5588
fuzzywuzzy - Fuzzy String Matching.2438
ftfy - Makes Unicode text less broken and more consistent automagically.1825
pypinyin - Convert Chinese hanzi (漢字) to pinyin (拼音).1371
textdistance - Compute distance between sequences. 30+ algorithms, pure python implementation, common interface, optional external libs usage.1123
chardet - Python 2/3 compatible character encoding detector.623
Levenshtein - Fast computation of Levenshtein distance and string similarity.456
pyfiglet - An implementation of figlet written in Python.107
pangu.py - Paranoid text spacing.33
unidecode - ASCII transliterations of Unicode text.
- Slugify
684
python-slugify - A Python slugify library that translates unicode to ASCII.422
awesome-slugify - A Python slugify library that can preserve unicode.281
unicode-slugify - A slugifier that generates unicode slugs with Django as a dependency.
- Unique identifiers
- Parser
2154
python-phonenumbers - Parsing, formatting, storing and validating international phone numbers.1620
sqlparse - A non-validating SQL parser.1342
ply - Implementation of lex and yacc parsing tools for Python.899
python-user-agents - Browser user agent parser.333
python-nameparser - Parsing human names into their individual components.310
pyparsing - A general purpose framework for generating parsers.0
pygments - A generic syntax highlighter.
Libraries for accessing third party services APIs. See: List of Python API Wrappers and Libraries.
4463
boto3 - Python interface to Amazon Web Services.4070
gspread - Google Spreadsheets Python API.2601
google-api-python-client - Google APIs Client Library for Python.2410
facebook-sdk - Facebook Platform Python SDK.1627
twython - A Python wrapper for the Twitter API.1484
apache-libcloud - One Python library for all clouds.292
django-wordpress - WordPress models and views for Django.
Libraries for parsing URLs.
1594
furl - A small Python library that makes parsing and manipulating URLs easy.815
webargs - A friendly library for parsing HTTP request arguments, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, and Pyramid.227
purl - A simple, immutable URL class with a clean API for interrogation and manipulation.226
pyshorteners - A pure Python URL shortening lib.
Libraries for manipulating video and GIFs.
91
scikit-video - Video processing routines for SciPy.0
moviepy - A module for script-based movie editing with many formats, including animated GIFs.
WSGI-compatible web servers.
5813
gunicorn - Pre-forked, partly written in C.4722
werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.1912
bjoern - Asynchronous, very fast and written in C.570
waitress - Multi-threaded, powers Pyramid.563
uWSGI - A project aims at developing a full stack for building hosting services, written in C.
Tools for managing, compressing and minifying website assets.
2884
fanstatic - Packages, optimizes, and serves static file dependencies as Python packages.2186
django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file.1306
django-pipeline - An asset packaging library for Django.1213
django-storages - A collection of custom storage back ends for Django.863
webassets - Bundles, optimizes, and manages unique cache-busting URLs for static resources.375
flask-assets - Helps you integrate webassets into your Flask app.322
fileconveyor - A daemon to detect and sync files to CDNs, S3 and FTP.
Libraries for extracting web contents.
9654
requests-html - Pythonic HTML Parsing for Humans.8128
newspaper - News extraction, article extraction and content curation in Python.2808
toapi - Every web site provides APIs.2518
textract - Extract text from any document, Word, PowerPoint, PDFs, etc.1923
sumy - A module for automatic summarization of text documents and HTML pages.1617
python-readability - Fast Python port of arc90's readability tool.679
html2text - Convert HTML to Markdown-formatted text.465
lassie - Web Content Retrieval for Humans.432
micawber - A small library for extracting rich content from URLs.
Libraries to automate data extraction from websites.
32781
scrapy - A fast high-level screen scraping and web crawling framework.13105
pyspider - A powerful spider system.6937
portia - Visual scraping for Scrapy.3292
robobrowser - A simple, Pythonic library for browsing the web without a standalone web browser.3211
MechanicalSoup - A Python library for automating interaction with websites.1762
grab - Site scraping framework.1353
cola - A distributed crawling framework.0
feedparser - Universal feed parser.
Full stack web frameworks.
17728
Tornado - A Web framework and asynchronous networking library.12032
Sanic - Web server that's written to go fast.7107
awesome-flask
5084
Vibora - Fast, efficient and asynchronous Web framework inspired by Flask.462
awesome-pyramid
29
Pyramid - A small, fast, down-to-earth, open source Python web framework.0
Django - The most popular web framework in Python.0
Flask - A microframework for Python.
Libraries for working with WebSocket.
3777
django-channels - Developer-friendly asynchrony for Django.2015
autobahn-python - WebSocket & WAMP for Python on Twisted and asyncio.1648
crossbar - Open-source Unified Application Router (Websocket & WAMP for Python on Autobahn).1182
django-socketio - WebSockets for Django.1041
WebSocket-for-Python - WebSocket client and server library for Python 2 and 3 as well as PyPy.
Online tools and APIs to simplify development.
See: awesome-CIandCD.
0
CircleCI - A CI service that can run very fast parallel testing. (GitHub only)0
Travis CI - A popular CI service for your open source and private projects. (GitHub only)0
Vexor CI - A continuous integration tool for private apps with pay-per-minute billing model.0
Wercker - A Docker-based platform for building and deploying applications and microservices.
0
Codacy - Automated Code Review to ship better code, faster.0
Codecov - Code coverage dashboard.0
CodeFactor - Automated Code Review for Git.0
Landscape - Hosted continuous Python code metrics.
Where to discover new Python libraries.
0
From Python Import Podcast0
Podcast.init0
Python Bytes0
Python Testing0
Radio Free Python0
Talk Python To Me
0
@codetengu0
@getpy0
@importpython0
@planetpython0
@pycoders0
@pypi0
@pythontrending0
@PythonWeekly0
@TalkPython0
@realpython
2361
Full Stack Python412
Python ZEEF363
Django Packages24
Python 3 Wall of Superpowers0
/r/Python0
PyPI Ranking0
/r/CoolGithubProjects0
Python Hackers0
Awesome Python @LibHunt0
Python 开发社区0
Real Python0
Trending Python repositories on GitHub today
511
Import Python Newsletter0
CodeTengu Weekly 碼天狗週刊0
Pycoder's Weekly0
Python Weekly0
Python Tricks
Your contributions are always welcome! Please take a look at the contribution guidelines first.
I will keep some pull requests open if I'm not sure whether those libraries are awesome, you could vote for them by adding 👍 to them. Pull requests will be merged when their votes reach 20.
If you have any question about this opinionated list, do not hesitate to contact me @vinta on Twitter or open an issue on GitHub.