Awesome Python 
-A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php.
+A curated list of awesome Python frameworks, libraries, software and resources.
+Inspired by awesome-php.
- Awesome Python
- Environment Management @@ -324,6 +329,7 @@
- Database Drivers
- ORM
- Web Frameworks +
- Serverless Frameworks
- Permissions
- CMS
- E-commerce @@ -369,6 +375,7 @@
- MapReduce
- Third-party APIs
- DevOps Tools +
- ChatOps Tools
- Job Scheduler
- Foreign Function Interface
- High Performance @@ -432,11 +439,11 @@
- PyInstaller - Converts Python programs into stand-alone executables (cross-platform). -
- dh-virtualenv - Build and distribute a virtualenv as a Debian package. +
- dh-virtualenv - 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). -
- pynsist - A tool to build Windows installers, installers bundle Python itself. +
- pynsist - A tool to build Windows installers, installers bundle Python itself.
- dateutil - Extensions to the standard Python datetime module.
- delorean - A library for clearing up the inconvenient truths that arise dealing with datetimes.
- moment - A Python library for dealing with dates/times. Inspired by Moment.js. -
- PyTime - A easy-use Python module which aims to operate date/time/datetime by string. +
- PyTime - A easy-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.py - Providing user-friendly functions to help perform common date and time actions.
Libraries to create packaged executables for release distribution.
Build Tools
Compile software from source code.
@@ -473,7 +480,7 @@ - pyparsing - A general purpose framework for generating parsers.
- python-nameparser - Parsing human names into their individual components.
- python-user-agents - Browser user agent parser. -
- sqlparse - A non-validating SQL parser. +
- sqlparse - A non-validating SQL parser.
- Marmir - Takes Python data structures and turns them into spreadsheets. -
- openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files. +
- openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files. +
- pyexcel - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and xlsm files.
- python-docx - Reads, queries and modifies Microsoft Word 2007/2008 docx files. +
- relatorio - Templating OpenDocument files.
- unoconv - Convert between any document format supported by LibreOffice/OpenOffice. -
- XlsxWriter - A Python module for creating Excel .xlsx files. +
- XlsxWriter - A Python module for creating Excel .xlsx files.
- xlwings - A BSD-licensed library that makes it easy to call Python from Excel and vice versa.
- xlwt / xlrd - Writing and reading data and formatting information from Excel files. -
- relatorio - Templating OpenDocument files.
-
@@ -557,12 +565,13 @@
- NLTK - A leading platform for building Python programs to work with human language data. -
- Jieba - Chinese text segmentation. -
- langid.py - Stand-alone language identification system.
- Pattern - A web mining module for the Python. +
- Jieba - Chinese text segmentation.
- SnowNLP - A library for processing Chinese text. -
- TextBlob - Providing a consistent API for diving into common NLP tasks. +
- spaCy - A library for industrial-strength natural language processing in Python and Cython. +
- TextBlob - Providing a consistent API for diving into common NLP tasks.
- TextGrocery - A simple, efficient short-text classification tool based on LibLinear and Jieba. +
- langid.py - Stand-alone language identification system.
- Command-line Application Development
-
+
- asciimatics - Cross-platform, full-screen terminal package (i.e. mouse/keyboard input and coloured, positioned text output) complete with high-level API for complex animations and special effects.
- 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. @@ -610,6 +620,7 @@
- percol - Adds flavor of interactive selection to the traditional pipe concept on UNIX.
- SAWS - A Supercharged AWS CLI.
- thefuck - Correcting your previous console command. +
- try - A dead simple CLI to try out python packages - It's never been easier.
- mycli - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
- pgcli - Postgres CLI with autocompletion and syntax highlighting.
Imagery
Libraries for manipulating images.
-
-
- pillow - Pillow is the friendly PIL fork. +
- pillow - Pillow is the friendly PIL fork.
- hmap - Image histogram remapping.
- imgSeek - A project for searching a collection of images using visual similarity.
- nude.py - Nudity detection. @@ -709,7 +720,7 @@
- PostgreSQL
- psycopg2 - The most popular PostgreSQL adapter for Python.
- queries - A wrapper of the psycopg2 library for interacting with PostgreSQL. -
- txpostgres - Twisted based asynchronous driver for PostgreSQL. +
- txpostgres - Twisted based asynchronous driver for PostgreSQL.
- Other Relational Databases
-
@@ -720,8 +731,8 @@
- NoSQL Databases
- cassandra-python-driver - Python driver for Cassandra. -
- HappyBase - A developer-friendly library for Apache HBase. -
- Plyvel - A fast and feature-rich Python interface to LevelDB. +
- HappyBase - A developer-friendly library for Apache HBase. +
- Plyvel - A fast and feature-rich Python interface to LevelDB.
- py2neo - Python wrapper client for Neo4j's restful interface.
- pycassa - Python Thrift driver for Cassandra.
- PyMongo - The official Python client for MongoDB. @@ -781,6 +792,13 @@
- web2py - A full stack web framework and platform focused in the ease of use.
- Tornado - A Web framework and asynchronous networking library.
Serverless Frameworks
+Frameworks for developing serverless Python code.
+-
+
- apex - Build, deploy, and manage AWS Lambda functions with ease. +
- Zappa - A tool for deploying WSGI applications on AWS Lambda and API Gateway. +
- python-lambda - A toolkit for developing and deploying Python code in AWS Lambda. +
Permissions
Libraries that allow or deny users access to data or functionality.
-
@@ -825,20 +843,21 @@
- Flask
- flask-api - Browsable Web APIs for Flask. -
- flask-restful - Quickly building REST APIs for Flask. -
- flask-restless - Generating RESTful APIs for database models defined with SQLAlchemy. +
- flask-restful - Quickly building REST APIs for Flask. +
- flask-restless - Generating RESTful APIs for database models defined with SQLAlchemy.
- flask-api-utils - Taking care of API representation and authentication for Flask.
- eve - REST API framework powered by Flask, MongoDB and good intentions.
- Pyramid
- Framework agnostic
- falcon - A high-performance framework for building cloud APIs and web app backends. +
- hug - A Python3 framework for cleanly exposing APIs over HTTP and the Command Line with automatic documentation and validation.
- sandman - Automated REST APIs for existing database-driven systems. -
- restless - Framework agnostic REST framework based on lessons learned from Tastypie. +
- restless - Framework agnostic REST framework based on lessons learned from Tastypie.
- ripozo - Quickly creating REST/HATEOAS/Hypermedia APIs.
@@ -846,7 +865,7 @@
- marshmallow - marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes. +
- marshmallow - marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.
- Jinja2 - A modern and designer friendly templating language. -
- Chameleon - An HTML/XML template engine. Modeled after ZPT, optimized for speed. +
- Jinja2 - A modern and designer friendly templating language.
- Genshi - Python templating toolkit for generation of web-aware output.
- Mako - Hyperfast and lightweight templating for the Python platform.
- elasticsearch-dsl-py - The official high-level Python client for Elasticsearch.
- esengine - ElasticSearch ODM (Object Document Mapper) for Python.
- solrpy - A Python client for solr. -
- Whoosh - A fast, pure Python search engine library. +
- Whoosh - A fast, pure Python search engine library.
Serialization
Libraries for serializing complex data types
-
-
Authentication
Libraries for implementing authentications schemes.
@@ -875,8 +894,7 @@Template Engine
Libraries and tools for templating and lexing.
-
-
News Feed
Libraries for building user's activities.
@@ -909,46 +927,45 @@Tools for managing, compressing and minifying website assets.
- django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file. -
- django-storages - A collection of custom storage back ends for Django. +
- django-pipeline - An asset packaging library for Django. +
- django-storages - A collection of custom storage back ends for Django.
- fanstatic - Packages, optimizes, and serves static file dependencies as Python packages. -
- File Conveyor - A daemon to detect and sync files to CDNs, S3 and FTP. -
- Flask-Assets - Helps you integrate webassets into your Flask app. +
- fileconveyor - A daemon to detect and sync files to CDNs, S3 and FTP. +
- flask-assets - Helps you integrate webassets into your Flask app.
- jinja-assets-compressor - A Jinja extension to compile and compress your assets. -
- webassets - Bundles, optimizes, and manages unique cache-busting URLs for static resources. +
- webassets - Bundles, optimizes, and manages unique cache-busting URLs for static resources.
Caching
Libraries for caching data.
-
-
- Beaker - A library for caching and sessions for use with web applications and stand-alone Python scripts and applications. +
- Beaker - A library for caching and sessions for use with web applications and stand-alone Python scripts and applications.
- django-cache-machine - Automatic caching and invalidation for Django models.
- django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
- django-viewlet - Render template parts with extended cache control. -
- dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors. +
- 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.
- johnny-cache - A caching framework for django applications.
- pylibmc - A Python wrapper around the libmemcached interface. +
- DiskCache - SQLite and file backed cache backend with faster lookups than memcached and redis.
Email
Libraries for sending and parsing email.
-
-
- django-celery-ses - Django email back end with AWS SES and Celery.
- envelopes - Mailing for human beings.
- flanker - A email address and Mime parsing library.
- imbox - Python IMAP for Humans.
- inbox.py - Python SMTP Server for Humans. -
- inbox - The open source email toolkit.
- lamson - Pythonic SMTP Application Server. -
- mailjet - Mailjet API implementation for batch mailing, statistics and more. -
- marrow.mailer - High-performance extensible mail delivery framework. +
- Marrow Mailer - High-performance extensible mail delivery framework.
- modoboa - A mail hosting and management platform including a modern and simplified Web UI. -
- pyzmail - Compose, send and parse emails. -
- Talon - Mailgun library to extract message quotations and signatures. +
- Nylas Sync Engine - Providing a RESTful API on top of a powerful email sync platform. +
- yagmail - Yet another Gmail/SMTP client.
Internationalization
Libraries for working with i18n.
- Babel - An internationalization library for Python. -
- Korean - A library for Korean morphology. +
- PyICU - A wrapper of International Components for Unicode C++ library (ICU).
URL Manipulation
Libraries for parsing URLs.
@@ -962,12 +979,12 @@HTML Manipulation
Libraries for working with HTML and XML.
-
-
- BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML. -
- bleach - A whitelist-based HTML sanitization and text linkification library. +
- BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML. +
- bleach - A whitelist-based HTML sanitization and text linkification library.
- cssutils - A CSS library for Python.
- html5lib - A standards-compliant library for parsing and serializing HTML documents and fragments.
- lxml - A very fast, easy-to-use and versatile library for handling HTML and XML. -
- MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python. +
- MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python.
- pyquery - A jQuery-like library for parsing HTML.
- untangle - Converts XML documents to Python objects for easy access.
- xhtml2pdf - HTML/CSS to PDF converter. @@ -1004,23 +1021,22 @@
- Deform - Python HTML form generation library influenced by the formish form generation library. +
- Deform - Python HTML form generation library influenced by the formish form generation library.
- django-bootstrap3 - Bootstrap 3 integration with Django. -
- django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant and DRY way. +
- django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant and DRY way.
- django-remote-forms - A platform independent Django form serializer. -
- WTForms - A flexible forms validation and rendering library. -
- WTForms-JSON - A WTForms extension for JSON data handling. +
- WTForms - A flexible forms validation and rendering library.
- Cerberus - A mappings-validator with a variety of rules, normalization-features and simple customization that uses a pythonic schema-definition. -
- colander - A system for validating and deserializing data obtained via XML, JSON, an HTML form post or any other equally simple data serialization. -
- kmatch - A language for matching/validating/filtering Python dictionaries. -
- schema - A library for validating Python data structures.
- Schematics - Data Structure Validation. +
- schema - A library for validating Python data structures. +
- jsonschema - An implementation of JSON Schema for Python. +
- Cerberus - A lightweight and extensible data validation library. +
- colander - Validating and deserializing data obtained via XML, JSON, an HTML form post. +
- voluptuous - A Python data validation library.
- valideer - Lightweight extensible data validation and adaptation library. -
- voluptuous - A Python data validation library. It is primarily intended for validating data coming into Python as JSON, YAML, etc.
- Ajenti - The admin panel your servers deserve.
- django-suit - Alternative Django Admin-Interface (free only for Non-commercial use). -
- django-xadmin - Drop-in replacement of Django admin comes with lots of goodies. +
- django-xadmin - Drop-in replacement of Django admin comes with lots of goodies.
- flask-admin - Simple and extensible administrative interface framework for Flask.
- flower - Real-time monitor and web admin for Celery.
- Grappelli – A jazzy skin for the Django Admin-Interface. @@ -1058,7 +1074,7 @@
- envoy - Python subprocess for Humans™. -
- sarge - Yet another wrapper for subprocess. +
- sarge - Yet another wrapper for subprocess.
- sh - A full-fledged subprocess replacement for Python.
- gunicorn - Pre-forked, partly written in C. -
- uwsgi - A project aims at developing a full stack for building hosting services, written in C. +
- uwsgi - A project aims at developing a full stack for building hosting services, written in C.
- bjoern - Asynchronous, very fast and written in C.
- fapws3 - Asynchronous (network side only), written in C.
- meinheld - Asynchronous, partly written in C.
- netius - Asynchronous, very fast.
- paste - Multi-threaded, stable, tried and tested.
- rocket - Multi-threaded. -
- waitress - Multi-threaded, poweres Pyramid. +
- waitress - Multi-threaded, poweres Pyramid.
- Werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.
- Pygame - Pygame is a set of Python modules designed for writing games.
- PyOgre - Python bindings for the Ogre 3D render engine, can be used for games, simulations, anything 3D.
- PyOpenGL - Python ctypes bindings for OpenGL and it's related APIs. -
- PySDL2 - A ctypes based wrapper for the SDL2 library. +
- PySDL2 - A ctypes based wrapper for the SDL2 library.
- RenPy - A Visual Novel engine.
- logging - (Python standard library) Logging facility for Python.
- logbook - Logging replacement for Python. -
- Eliot - Logging for complex & distributed systems. -
- Raven - The Python client for Sentry. +
- Eliot - Logging for complex & distributed systems. +
- Raven - The Python client for Sentry.
- Sentry - A realtime logging and aggregation server.
- Testing Frameworks
- unittest - (Python standard library) Unit testing framework. -
- nose - nose extends unittest. -
- contexts - A BDD framework for Python 3.3+. Inspired by C#'s
Machine.Specifications
.
- - hypothesis - Hypothesis is an advanced Quickcheck style property based testing library. -
- mamba - The definitive testing tool for Python. Born under the banner of BDD. -
- PyAutoGUI - PyAutoGUI is a cross-platform GUI automation Python module for human beings. -
- pyshould - Should style asserts based on PyHamcrest. +
- nose - A nicer
unittest
for Python. - pytest - A mature full-featured Python testing tool. -
- green - A clean, colorful test runner. -
- pyvows - BDD style testing for Python. Inspired by Vows.js. +
- hypothesis - Hypothesis is an advanced Quickcheck style property based testing library. +
- mamba - The definitive testing tool for Python. Born under the banner of BDD.
- Robot Framework - A generic test automation framework.
- - Web Testing
-
+
- Test Runners + +
- GUI / Web Testing
- Selenium - Python bindings for Selenium WebDriver.
- locust - Scalable user load testing tool written in Python.
- sixpack - A language-agnostic A/B Testing framework. -
- splinter - Open source tool for testing web applications. +
- splinter - Open source tool for testing web applications. +
- PyAutoGUI - PyAutoGUI is a cross-platform GUI automation Python module for human beings.
- Mock
-
@@ -1216,12 +1233,13 @@
- code2flow - Turn your Python and JavaScript code into DOT flowcharts.
- pycallgraph - A library that visualises the flow (call graph) of your Python application.
- pysonar2 - A type inferencer and indexer for Python. +
- coala - Language independent and easily extendable code analysis application.
- Linter
- bcbio-nextgen - A toolkit providing best-practice pipelines for fully automated high throughput sequencing analysis.
- bccb - Collection of useful code related to biological analysis.
- Biopython - Biopython is a set of freely available tools for biological computation. -
- blaze - NumPy and Pandas interface to Big Data. +
- blaze - NumPy and Pandas interface to Big Data.
- cclib - A library for parsing and interpreting the results of computational chemistry packages.
- NetworkX - A high-productivity software for complex networks.
- Neupy - Running and testing different Artificial Neural Networks algorithms. +
- NIPY - A collection of neuroimaging toolkits.
- Numba - Python JIT (just in time) complier to LLVM aimed at scientific Python by the developers of Cython and NumPy.
- NumPy - A fundamental package for scientific computing with Python.
- Open Babel - A chemical toolbox designed to speak the many languages of chemical data. @@ -1308,7 +1327,7 @@
- Pylearn2 - A Machine Learning library based on Theano.
- python-recsys - A Python library for implementing a Recommender System.
- scikit-learn - A Python module for machine learning built on top of SciPy. -
- pydeep-Deep learning in python +
- pydeep - Deep learning in python
- vowpal_porpoise - A lightweight Python wrapper for Vowpal Wabbit.
- skflow - A simplified interface for TensorFlow (mimicking scikit-learn).
- apache-libcloud - One Python library for all clouds.
- boto - Python interface to Amazon Web Services.
- django-wordpress - WordPress models and views for Django. -
- facebook-sdk - Facebook Platform Python SDK. +
- facebook-sdk - Facebook Platform Python SDK.
- facepy - Facepy makes it really easy to interact with Facebook's Graph API
- gmail - A Pythonic interface for Gmail.
- google-api-python-client - Google APIs Client Library for Python. @@ -1350,20 +1369,24 @@
- SaltStack - Infrastructure automation and management system.
- OpenStack - Open source software for building private and public clouds.
- Docker Compose - Fast, isolated development environments using Docker. -
- Fabric - A simple, Pythonic tool for remote execution and deployment. +
- Cloud-Init - A multi-distribution package that handles early initialization of a cloud instance.
- cuisine - Chef-like functionality for Fabric. +
- Fabric - A simple, Pythonic tool for remote execution and deployment.
- Fabtools - Tools for writing awesome Fabric files. -
- gitapi - Pure-Python API for Git. -
- hgapi - Pure-Python API for Mercurial.
- honcho - A Python clone of Foreman, for managing Procfile-based applications.
- pexpect - Controlling interactive programs in a pseudo-terminal like GNU expect.
- psutil - A cross-platform process and system utilities module.
- supervisor - Supervisor process control system for UNIX.
Forms
Libraries for working with forms.
-
-
Data Validation
Libraries for validating data. Used for forms in many cases.
-
-
Anti-spam
Libraries for fighting spam.
@@ -1038,7 +1054,7 @@Libraries for starting and communicating with OS processes.
Concurrency and Parallelism
@@ -1092,14 +1108,14 @@WSGI-compatible web servers.
RPC Servers
@@ -1142,7 +1158,7 @@Logging
@@ -1150,8 +1166,8 @@Testing
@@ -1159,23 +1175,24 @@ChatOps Tools
+Libraries for chatbot development.
+-
+
- Errbot - The easiest and most popular chatbot to implement ChatOps. +
Job Scheduler
Libraries for scheduling jobs.
-
-
- APScheduler - A light but powerful in-process task scheduler that lets you schedule functions. +
- APScheduler - A light but powerful in-process task scheduler that lets you schedule functions.
- django-schedule - A calendaring app for Django.
- doit - A task runner and build tool.
- gunnery - Multipurpose task execution tool for distributed systems with web-based interface. @@ -1414,7 +1437,7 @@
- Pyro - Python Robotics.
- PyUserInput - A module for cross-platform control of the mouse and keyboard.
- scapy - A brilliant packet manipulation library. -
- wifi - A Python library and command line tool for working with WiFi on Linux. +
- wifi - A Python library and command line tool for working with WiFi on Linux.
- Pingo - Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel Galileo, etc.
Compatibility
@@ -1428,7 +1451,7 @@Useful libraries or tools that don't fit in the categories above.
- blinker - A fast Python in-process signal/event dispatching system. -
- itsdangerous - Various helpers to pass trusted data to untrusted environments. +
- itsdangerous - Various helpers to pass trusted data to untrusted environments.
- pluginbase - A simple but flexible plugin system for Python.
- Pychievements - A framework for creating and tracking achievements.
- Tryton - A general purpose business framework. @@ -1482,7 +1505,9 @@
Code Quality
-
+
- Codecov - Code coverage dashboard.
- Codacy - Automated Code Review to ship better code, faster. Free for Open Source. +
- Landscape - Hosted continuous Python code metrics.
- QuantifiedCode - A data-driven, automated, continuous code review tool.
Resources
@@ -1492,7 +1517,7 @@ - r/Python
- CoolGithubProjects
- Django Packages -
- Full Stack Python +
- Full Stack Python
- Python 3 Wall of Superpowers
- Python Hackers
- Python ZEEF @@ -1501,6 +1526,7 @@
- CodeTengu Weekly
- Import Python Newsletter
- Pycoder's Weekly
- Python Weekly @@ -1534,7 +1560,7 @@
Libraries for working with human languages.
Documentation
Libraries for generating project documentation.
@@ -588,6 +597,7 @@Libraries for building command-line application.
Weekly
-
+
Contributing
Your contributions are always welcome! Please take a look at the contribution guidelines first.
-I would keep some pull requests open if I'm not sure whether the libraries are awesome, you could vote for them by leaving a comment that contains +1
.