vinta/awesome-python
Awesome Python 
A curated list of awesome Python frameworks, libraries, software and resources.
Inspired by awesome-phpstars26.6k.
- Awesome Python
- Admin Panels
- Algorithms and Design Patterns
- ASGI Servers
- Asynchronous Programming
- Audio
- Authentication
- Build Tools
- Built-in Classes Enhancement
- Caching
- ChatOps Tools
- CMS
- Code Analysis
- Command-line Interface Development
- 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
- Enterprise Application Integrations
- Environment Management
- Files
- Foreign Function Interface
- Forms
- Functional Programming
- Game Development
- Geolocation
- GUI Development
- Hardware
- HTML Manipulation
- HTTP Clients
- Image Processing
- Implementations
- Interactive Interpreter
- Internationalization
- Job Scheduler
- Logging
- Machine Learning
- Miscellaneous
- Natural Language Processing
- Network Virtualization
- News Feed
- ORM
- Package Management
- Package Repositories
- Penetration testing
- Permissions
- Processes
- Recommender Systems
- Refactoring
- RESTful API
- Robotics
- RPC Servers
- Science
- Search
- Serialization
- Serverless Frameworks
- Shell
- Specific Formats Processing
- Static Site Generator
- Tagging
- Task Queues
- Template Engine
- Testing
- Text Processing
- Third-party APIs
- URL Manipulation
- Video
- Web Asset Management
- Web Content Extracting
- Web Crawling
- Web Frameworks
- WebSocket
- WSGI Servers
- Resources
- Contributing
Admin Panels
Libraries for administrative interfaces.
- ajentistars6.8k - The admin panel your servers deserve.
- django-grappelli - A jazzy skin for the Django Admin-Interface.
- django-jetstars3.3k - Modern responsive template for the Django admin interface with improved functionality.
- django-suit - Alternative Django Admin-Interface (free only for Non-commercial use).
- django-xadminstars4.6k - Drop-in replacement of Django admin comes with lots of goodies.
- flask-adminstars5.1k - Simple and extensible administrative interface framework for Flask.
- flowerstars5.2k - Real-time monitor and web admin for Celery.
- jet-bridgestars1.2k - Admin panel framework for any application with nice UI (ex Jet Django).
- wooeystars1.8k - A Django app which creates automatic web UIs for Python scripts.
Algorithms and Design Patterns
Python implementation of data structures, algorithms and design patterns. Also see awesome-algorithmsstars11.6k.
- Algorithms
- algorithmsstars20.8k - Minimal examples of data structures and algorithms.
- python-dsstars1.7k - A collection of data structure and algorithms for coding interviews.
- sortedcontainersstars2.5k - Fast and pure-Python implementation of sorted collections.
- TheAlgorithmsstars136.4k - All Algorithms implemented in Python.
- Design Patterns
- PyPattyrnstars1.5k - A simple yet effective library for implementing common design patterns.
- python-patternsstars31.5k - A collection of design patterns in Python.
- transitionsstars4.4k - A lightweight, object-oriented finite state machine implementation.
ASGI Servers
ASGI-compatible web servers.
- daphnestars1.8k - A HTTP, HTTP2 and WebSocket protocol server for ASGI and ASGI-HTTP.
- uvicornstars5.3k - A lightning-fast ASGI server implementation, using uvloop and httptools.
Asynchronous Programming
- asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.
- triostars4.7k - A friendly library for async concurrency and I/O.
- Twisted - An event-driven networking engine.
- uvloop - Ultra fast asyncio event loop.
Audio
Libraries for manipulating audio and its metadata.
- Audio
- audioreadstars397 - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
- dejavustars5.7k - Audio fingerprinting and recognition.
- kaprestars822 - Keras Audio Preprocessors.
- librosastars5.2k - Python library for audio and music analysis.
- matcheringstars619 - A library for automated reference audio mastering.
- mingus - An advanced music theory and notation package with MIDI file and playback support.
- pyAudioAnalysisstars4.8k - Audio feature extraction, classification, segmentation and applications.
- pydubstars6.1k - Manipulate audio with a simple and easy high level interface.
- TimeSidestars321 - Open web audio processing framework.
- Metadata
- beetsstars10.9k - A music library manager and MusicBrainz tagger.
- eyeD3stars365 - A tool for working with audio files, specifically MP3 files containing ID3 metadata.
- mutagenstars975 - A Python module to handle audio metadata.
- tinytagstars527 - A library for reading music meta data of MP3, OGG, FLAC and Wave files.
Authentication
Libraries for implementing authentications schemes.
- OAuth
- authlibstars3.1k - JavaScript Object Signing and Encryption draft implementation.
- django-allauthstars7.2k - Authentication app for Django that "just works."
- django-oauth-toolkitstars2.6k - OAuth 2 goodies for Django.
- oauthlib - A generic and thorough implementation of the OAuth request-signing logic.
- python-oauth2stars2.9k - A fully tested, abstract interface to creating OAuth clients and servers.
- python-social-authstars2.8k - An easy-to-setup social authentication mechanism.
- JWT
- pyjwtstars4.2k - JSON Web Token implementation in Python.
- python-josestars1.1k - A JOSE implementation in Python.
- python-jwtstars197 - A module for generating and verifying JSON Web Tokens.
Build Tools
Compile software from source code.
- BitBake - A make-like build tool for embedded Linux.
- buildout - A build system for creating, assembling and deploying applications from multiple parts.
- PlatformIOstars5.9k - A console tool to build code with different development platforms.
- pybuilderstars1.4k - A continuous build tool written in pure Python.
- SCons - A software construction tool.
Built-in Classes Enhancement
Libraries for enhancing Python built-in classes.
- attrsstars4.3k - Replacement for
__init__
,__eq__
,__repr__
, etc. boilerplate in class definitions. - bidictstars1.1k - Efficient, Pythonic bidirectional map data structures and related functionality..
- Boxstars2k - Python dictionaries with advanced dot notation access.
- dataclasses - (Python standard library) Data classes.
- DottedDictstars144 - A library that provides a method of accessing lists and dicts with a dotted path notation.
CMS
Content Management Systems.
- django-cms - An Open source enterprise CMS based on the Django.
- feincmsstars827 - One of the most advanced Content Management Systems built on Django.
- indicostars1.3k - A feature-rich event management system, made @ CERN.
- Kottistars379 - A high-level, Pythonic web application framework built on Pyramid.
- mezzaninestars4.4k - A powerful, consistent, and flexible content management platform.
- plone - A CMS built on top of the open source application server Zope.
- quokkastars2.2k - Flexible, extensible, small CMS powered by Flask and MongoDB.
- wagtail - A Django content management system.
Caching
Libraries for caching data.
- beakerstars481 - A WSGI middleware for sessions and caching.
- django-cache-machinestars828 - Automatic caching and invalidation for Django models.
- django-cacheopsstars1.6k - A slick ORM cache with automatic granular event-driven invalidation.
- dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors.
- HermesCache - Python caching library with tag-based invalidation and dogpile effect prevention.
- pylibmcstars455 - A Python wrapper around the libmemcached interface.
- python-diskcache - SQLite and file backed cache backend with faster lookups than memcached and redis.
ChatOps Tools
Libraries for chatbot development.
Code Analysis
Tools of static analysis, linters and code quality checkers. Also see awesome-static-analysisstars9.9k.
- Code Analysis
- coalastars3.3k - Language independent and easily extendable code analysis application.
- code2flowstars2.5k - Turn your Python and JavaScript code into DOT flowcharts.
- prospectorstars1.6k - A tool to analyse Python code.
- pycallgraphstars1.6k - A library that visualises the flow (call graph) of your Python application.
- vulturestars2.1k - A tool for finding and analysing dead Python code.
- Code Linters
- Code Formatters
- blackstars27.5k - The uncompromising Python code formatter.
- isortstars4.9k - A Python utility / library to sort imports.
- yapfstars12.5k - Yet another Python code formatter from Google.
- Static Type Checkers, also see awesome-python-typingstars1k
- mypy - Check variable types during compile time.
- pyre-checkstars5.9k - Performant type checking.
- typeshedstars2.9k - Collection of library stubs for Python, with static types.
- Static Type Annotations Generators
- MonkeyTypestars3.8k - A system for Python that generates static type annotations by collecting runtime types.
- pyannotatestars1.3k - Auto-generate PEP-484 annotations.
- pytypestars3.8k - Pytype checks and infers types for Python code - without requiring type annotations.
Command-line Interface Development
Libraries for building command-line applications.
- Command-line Application Development
- 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-firestars22.5k - A library for creating command line interfaces from absolutely any Python object.
- python-prompt-toolkitstars7.7k - A library for building powerful interactive command lines.
- Terminal Rendering
- alive-progress - A new kind of Progress Bar, with real-time throughput, eta and very cool animations.
- asciimaticsstars3.1k - A package to create full-screen text UIs (from interactive forms to ASCII animations).
- bashplotlibstars1.7k - Making basic plots in the terminal.
- colorama - Cross-platform colored terminal text.
- richstars37.7k - Python library for rich text and beautiful formatting in the terminal. Also provides a great
RichHandler
log handler. - tqdm - Fast, extensible progress bar for loops and CLI.
Command-line Tools
Useful CLI-based tools for productivity.
- Productivity Tools
- copierstars564 - A library and command-line utility for rendering projects templates.
- cookiecutterstars17k - A command-line utility that creates projects from cookiecutters (project templates).
- doitlivestars3.1k - A tool for live presentations in the terminal.
- howdoistars9.5k - Instant coding answers via the command line.
- Invokestars3.6k - A tool for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks.
- PathPickerstars4.7k - Select files out of bash output.
- percolstars3.1k - Adds flavor of interactive selection to the traditional pipe concept on UNIX.
- thefuckstars71.3k - Correcting your previous console command.
- tmuxpstars3.4k - A tmuxstars24.9k session manager.
- trystars636 - A dead simple CLI to try out python packages - it's never been easier.
- CLI Enhancements
- httpiestars21.6k - A command line HTTP client, a user-friendly cURL replacement.
- iredisstars1.8k - Redis CLI with autocompletion and syntax highlighting.
- kube-shellstars2.1k - An integrated shell for working with the Kubernetes CLI.
- liteclistars1.6k - SQLite CLI with autocompletion and syntax highlighting.
- myclistars10.4k - MySQL CLI with autocompletion and syntax highlighting.
- pgclistars10.4k - PostgreSQL CLI with autocompletion and syntax highlighting.
- sawsstars5k - A Supercharged aws-clistars12.4k.
Compatibility
Libraries for migrating from Python 2 to 3.
- python-future - The missing compatibility layer between Python 2 and Python 3.
- modernizestars283 - Modernizes Python code for eventual Python 3 migration.
- six - Python 2 and 3 compatibility utilities.
Computer Vision
Libraries for Computer Vision.
- EasyOCRstars14.9k - Ready-to-use OCR with 40+ languages supported.
- Face Recognitionstars44.3k - Simple facial recognition library.
- Korniastars6.6k - Open Source Differentiable Computer Vision Library for PyTorch.
- OpenCV - Open Source Computer Vision Library.
- pytesseractstars4.2k - A wrapper for Google Tesseract OCR.
- SimpleCVstars2.6k - An open source framework for building computer vision applications.
- tesserocrstars1.6k - Another simple, Pillow-friendly, wrapper around the
tesseract-ocr
API for OCR.
Concurrency and Parallelism
Libraries for concurrent and parallel execution. Also see awesome-asynciostars3.5k.
- 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 greenletstars1.4k.
- multiprocessing - (Python standard library) Process-based parallelism.
- scoopstars551 - Scalable Concurrent Operations in Python.
- uvloop - Ultra fast implementation of
asyncio
event loop on top oflibuv
.
Configuration
Libraries for storing and parsing configuration options.
- configobjstars272 - INI file parser with validation.
- configparser - (Python standard library) INI file parser.
- hydrastars5.9k - Hydra is a framework for elegantly configuring complex applications.
- profig - Config from multiple formats with value conversion.
- python-decouplestars2.1k - Strict separation of settings from code.
Cryptography
- cryptography - A package designed to expose cryptographic primitives and recipes to Python developers.
- paramikostars7.7k - The leading native Python SSHv2 protocol library.
- passlib - Secure password storage/hashing library, very high level.
- pynaclstars887 - Python binding to the Networking and Cryptography (NaCl) library.
Data Analysis
Libraries for data analyzing.
- AWS Data Wranglerstars2.8k - Pandas on AWS.
- Blazestars3k - NumPy and Pandas interface to Big Data.
- Open Mining - Business Intelligence (BI) in Pandas interface.
- Optimus - Agile Data Science Workflows made easy with PySpark.
- Orange - Data mining, data visualization, analysis and machine learning through visual programming or scripts.
- Pandas - A library providing high-performance, easy-to-use data structures and data analysis tools.
Data Validation
Libraries for validating data. Used for forms in many cases.
- Cerberusstars2.8k - A lightweight and extensible data validation library.
- colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.
- jsonschemastars3.7k - An implementation of JSON Schema for Python.
- schemastars2.6k - A library for validating Python data structures.
- Schematicsstars2.5k - Data Structure Validation.
- valideerstars254 - Lightweight extensible data validation and adaptation library.
- voluptuousstars1.7k - A Python data validation library.
Data Visualization
Libraries for visualizing data. Also see awesome-javascriptstars27.8k.
- Altairstars7.5k - Declarative statistical visualization library for Python.
- Bokehstars16.3k - Interactive Web Plotting for Python.
- bqplotstars3.3k - Interactive Plotting Library for the Jupyter Notebook.
- Cartopystars1.1k - A cartographic python library with matplotlib support.
- Dash - Built on top of Flask, React and Plotly aimed at analytical web applications.
- diagramsstars18.4k - Diagram as Code.
- Matplotlib - A Python 2D plotting library.
- plotninestars3.1k - A grammar of graphics for Python based on ggplot2.
- Pygal - A Python SVG Charts Creator.
- PyGraphviz - Python interface to Graphviz.
- PyQtGraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
- Seabornstars9.5k - Statistical data visualization using Matplotlib.
- VisPystars2.9k - High-performance scientific visualization based on OpenGL.
Database
Databases implemented in Python.
- pickleDBstars663 - A simple and lightweight key-value store for Python.
- tinydbstars5.1k - A tiny, document-oriented database.
- ZODBstars529 - A native object database for Python. A key-value and object graph database.
Database Drivers
Libraries for connecting and operating databases.
- MySQL - awesome-mysql
- mysqlclientstars2.1k - MySQL connector with Python 3 support (mysql-python fork).
- PyMySQLstars6.9k - A pure Python MySQL driver compatible to mysql-python.
- PostgreSQL - awesome-postgresstars7.8k
- SQlite - awesome-sqlitestars176
- sqlite3 - (Python standard library) SQlite interface compliant with DB-API 2.0
- SuperSQLitestars694 - A supercharged SQLite library built on top of apswstars547.
- Other Relational Databases
- pymssql - A simple database interface to Microsoft SQL Server.
- clickhouse-driverstars846 - Python driver with native interface for ClickHouse.
- NoSQL Databases
- cassandra-driverstars1.3k - The Python Driver for Apache Cassandra.
- happybasestars585 - A developer-friendly library for Apache HBase.
- kafka-pythonstars4.8k - The Python client for Apache Kafka.
- py2neo - A client library and toolkit for working with Neo4j.
- pymongostars3.6k - The official Python client for MongoDB.
- redis-pystars10.3k - The Python client for Redis.
- Asynchronous Clients
Date and Time
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.
- Chronykstars328 - A Python 3 library for parsing human-written times and dates.
- dateutilstars1.8k - Extensions to the standard Python datetime module.
- deloreanstars1.8k - A library for clearing up the inconvenient truths that arise dealing with datetimes.
- mayastars3.3k - Datetimes for Humans.
- momentstars703 - A Python library for dealing with dates/times. Inspired by Moment.js.
- Pendulumstars4.8k - Python datetimes made easy.
- PyTimestars146 - An easy-to-use Python module which aims to operate date/time/datetime by string.
- pytz - World timezone definitions, modern and historical. Brings the tz database into Python.
- when.pystars192 - Providing user-friendly functions to help perform common date and time actions.
Debugging Tools
Libraries for debugging code.
- pdb-like Debugger
- Tracing
- lptracestars683 - strace for Python programs.
- manholestars327 - Debugging UNIX socket connections and present the stacktraces for all threads and an interactive prompt.
- pyringestars1.6k - Debugger capable of attaching to and injecting code into Python processes.
- python-hunterstars670 - A flexible code tracing toolkit.
- Profiler
- line_profilerstars3.6k - Line-by-line profiling.
- memory_profilerstars75 - Monitor Memory usage of Python code.
- py-spystars8.5k - A sampling profiler for Python programs. Written in Rust.
- pyflamestars2.9k - A ptracing profiler For Python.
- vprofstars3.8k - Visual Python profiler.
- Others
- django-debug-toolbarstars7k - Display various debug information for Django.
- django-devserverstars1.3k - A drop-in replacement for Django's runserver.
- flask-debugtoolbarstars837 - A port of the django-debug-toolbar to flask.
- icecreamstars5.9k - Inspect variables, expressions, and program execution with a single, simple function call.
- pyelftoolsstars1.4k - Parsing and analyzing ELF files and DWARF debugging information.
Deep Learning
Frameworks for Neural Networks and Deep Learning. Also see awesome-deep-learningstars18.8k.
- caffestars32.6k - A fast open framework for deep learning..
- kerasstars55.3k - A high-level neural networks library and capable of running on top of either TensorFlow or Theano.
- mxnetstars20k - A deep learning framework designed for both efficiency and flexibility.
- pytorchstars56.3k - Tensors and Dynamic neural networks in Python with strong GPU acceleration.
- SerpentAI - Game agent framework. Use any video game as a deep learning sandbox.
- tensorflowstars165.3k - The most popular Deep Learning framework created by Google.
- Theanostars9.6k - A library for fast numerical computation.
DevOps Tools
Software and libraries for DevOps.
- Configuration Management
- ansiblestars53.3k - A radically simple IT automation platform.
- cloudinit - A multi-distribution package that handles early initialization of a cloud instance.
- OpenStack - Open source software for building private and public clouds.
- pyinfrastars1.5k - A versatile CLI tools and python libraries to automate infrastructure.
- saltstackstars12.5k - Infrastructure automation and management system.
- SSH-style Deployment
- Process Management
- Monitoring
- Backup
- BorgBackup - A deduplicating archiver with compression and encryption.
- Others
- docker-compose - Fast, isolated development environments using Docker.
Distributed Computing
Frameworks and libraries for Distributed Computing.
- Batch Processing
- daskstars9.9k - A flexible parallel computing library for analytic computing.
- luigistars15.7k - A module that helps you build complex pipelines of batch jobs.
- mrjobstars2.6k - Run MapReduce jobs on Hadoop or Amazon Web Services.
- PySpark - Apache Spark Python API.
- Raystars20.6k - A system for parallel and distributed Python that unifies the machine learning ecosystem.
- Stream Processing
- faust - A stream processing library, porting the ideas from Kafka Streams to Python.
- streamparsestars1.5k - Run Python code against real-time streams of data via Apache Storm.
Distribution
Libraries to create packaged executables for release distribution.
- dh-virtualenvstars1.5k - Build and distribute a virtualenv as a Debian package.
- Nuitka - Compile scripts, modules, packages to an executable or extension module.
- py2app - Freezes Python scripts (Mac OS X).
- py2exe - Freezes Python scripts (Windows).
- pyarmorstars1.5k - A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
- PyInstallerstars9.2k - Converts Python programs into stand-alone executables (cross-platform).
- pynsist - A tool to build Windows installers, installers bundle Python itself.
- shivstars1.4k - A command line utility for building fully self-contained zipapps (PEP 441), but with all their dependencies included.
Documentation
Libraries for generating project documentation.
- sphinxstars4.6k - Python Documentation generator.
- pdocstars1.2k - Epydoc replacement to auto generate API documentation for Python libraries.
- pyccostars773 - The literate-programming-style documentation generator.
Downloader
Libraries for downloading.
- aksharestars5k - A financial data interface library, built for human beings!
- s3cmdstars3.9k - A command line tool for managing Amazon S3 and CloudFront.
- s4cmdstars1.2k - Super S3 command line tool, good for higher performance.
- you-get - A YouTube/Youku/Niconico video downloader written in Python 3.
- youtube-dl - A small command-line program to download videos from YouTube.
E-commerce
Frameworks and libraries for e-commerce and payments.
- alipaystars320 - Unofficial Alipay API for Python.
- Cartridgestars650 - A shopping cart app built using the Mezzanine.
- django-oscar - An open-source e-commerce framework for Django.
- django-shopstars2.8k - A Django based shop system.
- forex-pythonstars484 - Foreign exchange rates, Bitcoin price index and currency conversion.
- merchantstars984 - A Django app to accept payments from various payment processors.
- moneystars205 -
Money
class with optional CLDR-backed locale-aware formatting and an extensible currency exchange. - python-currenciesstars59 - Display money format and its filthy currencies.
- saleor - An e-commerce storefront for Django.
- shoop - An open source E-Commerce platform based on Django.
Editor Plugins and IDEs
- Emacs
- Sublime Text
- anacondastars2.1k - Anaconda turns your Sublime Text 3 in a full featured Python development IDE.
- SublimeJEDIstars918 - A Sublime Text plugin to the awesome auto-complete library Jedi.
- Vim
- jedi-vimstars5k - Vim bindings for the Jedi auto-completion library for Python.
- python-modestars5.3k - An all in one plugin for turning Vim into a Python IDE.
- YouCompleteMestars24k - Includes Jedistars5.1k-based completion engine for Python.
- Visual Studio
- Visual Studio Code
- Python - The official VSCode extension with rich support for Python.
- IDE
Libraries for sending and parsing email.
- Mail Servers
- Clients
- Others
Enterprise Application Integrations
Platforms and tools for systems integrations in enterprise environments
- Zato - ESB, SOA, REST, APIs and Cloud Integrations in Python.
Environment Management
Libraries for Python version and virtual environment management.
- pyenvstars27.4k - Simple Python version management.
- virtualenvstars4.2k - A tool to create isolated Python environments.
Files
Libraries for file manipulation and MIME type detection.
- mimetypes - (Python standard library) Map filenames to MIME types.
- path.pystars985 - A module wrapper for os.path.
- pathlib - (Python standard library) An cross-platform, object-oriented path library.
- PyFilesystem2stars1.7k - Python's filesystem abstraction layer.
- python-magicstars2.1k - A Python interface to the libmagic file type identification library.
- Unipathstars501 - An object-oriented approach to file/directory operations.
- watchdogstars5.3k - API and shell utilities to monitor file system events.
Foreign Function Interface
Libraries for providing foreign function interface.