Awesome Python Awesome

A curated list of awesome Python frameworks, libraries, software and resources.

Inspired by awesome-php16k 3k .


Admin Panels

Libraries for administrative interfaces.

  • Ajenti1k 272 - The admin panel your servers deserve.
  • django-suit - Alternative Django Admin-Interface (free only for Non-commercial use).
  • django-xadmin737 244 - Drop-in replacement of Django admin comes with lots of goodies.
  • flask-admin3k 964 - Simple and extensible administrative interface framework for Flask.
  • flower2k 513 - Real-time monitor and web admin for Celery.
  • Grappelli - A jazzy skin for the Django Admin-Interface.
  • Wooey - A Django app which creates automatic web UIs for Python scripts.

Algorithms and Design Patterns

Python implementation of algorithms and design patterns.

  • algorithms2k 669 - A module of algorithms for Python.
  • PyPattyrn279 18 - A simple yet effective library for implementing common design patterns.
  • python-patterns4k 1k - A collection of design patterns in Python.
  • sortedcontainers - Fast, pure-Python implementation of SortedList, SortedDict, and SortedSet types.

Anti-spam

Libraries for fighting spam.

Asset Management

Tools for managing, compressing and minifying website assets.

  • django-compressor2k 572 - Compresses linked and inline JavaScript or CSS into a single cached file.
  • django-pipeline257 67 - An asset packaging library for Django.
  • django-storages671 336 - A collection of custom storage back ends for Django.
  • fanstatic - Packages, optimizes, and serves static file dependencies as Python packages.
  • fileconveyor - A daemon to detect and sync files to CDNs, S3 and FTP.
  • flask-assets336 92 - Helps you integrate webassets into your Flask app.
  • jinja-assets-compressor68 12 - A Jinja extension to compile and compress your assets.
  • webassets848 270 - Bundles, optimizes, and manages unique cache-busting URLs for static resources.

Audio

Libraries for manipulating audio.

  • audiolazy303 46 - Expressive Digital Signal Processing (DSP) package for Python.
  • audioread61 23 - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
  • beets - A music library manager and MusicBrainz tagger.
  • dejavu1k 177 - Audio fingerprinting and recognition.
  • django-elastic-transcoder70 42 - Django + Amazon Elastic Transcoder.
  • eyeD3 - A tool for working with audio files, specifically MP3 files containing ID3 metadata.
  • id3reader - A Python module for reading MP3 meta data.
  • m3u8296 132 - A module for parsing m3u8 file.
  • mingus - An advanced music theory and notation package with MIDI file and playback support.
  • mutagen209 33 - A Python module to handle audio metadata.
  • pyAudioAnalysis794 266 - Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications
  • pydub2k 269 - Manipulate audio with a simple and easy high level interface.
  • pyechonest637 2k - Python client for the Echo Nest API.
  • talkbox - A Python library for speech/signal processing.
  • TimeSide219 34 - Open web audio processing framework.
  • tinytag247 41 - A library for reading music meta data of MP3, OGG, FLAC and Wave files.

Authentication

Libraries for implementing authentications schemes.

  • OAuth
    • Authomatic16 1 - Simple but powerful framework agnostic authentication/authorization client.
    • django-allauth4k 1k - Authentication app for Django that "just works."
    • django-oauth-toolkit1k 381 - OAuth 2 goodies for Django.
    • Flask-OAuthlib1k 330 - OAuth 1.0/a, 2.0 implementation of client and provider for Flask.
    • OAuthLib1k 367 - A generic and thorough implementation of the OAuth request-signing logic.
    • python-oauth2522 152 - A fully tested, abstract interface to creating OAuth clients and servers.
    • python-social-auth3k 1k - An easy-to-setup social authentication mechanism.
    • rauth2k 178 - A Python library for OAuth 1.0/a, 2.0, and Ofly.
    • sanction134 33 - A dead simple OAuth2 client implementation.
  • Others
    • jose - JavaScript Object Signing and Encryption draft implementation.
    • PyJWT1k 176 - Implementation of the JSON Web Token draft 01.
    • python-jws26 11 - Implementation of JSON Web Signatures draft 02.
    • python-jwt52 5 - 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.
  • PlatformIO790 114 - A console tool to build code with different development platforms.
  • PyBuilder983 210 - A continuous build tool written in pure Python.
  • SCons - A software construction tool.

Built-in Classes Enhancement

Libraries for enhancing Python built-in classes.

  • attrs558 51 - Replacement for __init__, __eq__, __repr__, etc. boilerplate in class definitions.
  • bidict168 17 - Efficient, Pythonic bidirectional map data structures and related functionality..
  • Box928 33 - Python dictionaries with advanced dot notation access.
  • dotted10 3 - 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.
  • djedi-cms - A lightweight but yet powerful Django CMS with plugins, inline editing and performance in mind.
  • FeinCMS - One of the most advanced Content Management Systems built on Django.
  • Kotti - A high-level, Pythonic web application framework built on Pyramid.
  • Mezzanine - A powerful, consistent, and flexible content management platform.
  • Opps - A Django-based CMS for magazines, newspapers websites and portals with high-traffic.
  • Plone - A CMS built on top of the open source application server Zope.
  • Quokka - Flexible, extensible, small CMS powered by Flask and MongoDB.
  • Wagtail - A Django content management system.
  • Widgy - Last CMS framework, based on Django.

Caching

Libraries for caching data.

  • Beaker328 119 - A library for caching and sessions for use with web applications and stand-alone Python scripts and applications.
  • DiskCache - SQLite and file backed cache backend with faster lookups than memcached and redis.
  • django-cache-machine165 33 - Automatic caching and invalidation for Django models.
  • django-cacheops812 130 - A slick ORM cache with automatic granular event-driven invalidation.
  • django-viewlet58 16 - Render template parts with extended cache control.
  • 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-cache218 89 - A caching framework for django applications.
  • pylibmc365 125 - A Python wrapper around the libmemcached interface.

ChatOps Tools

Libraries for chatbot development.

  • Errbot - The easiest and most popular chatbot to implement ChatOps.

Code Analysis

Tools of static analysis, linters and code quality checkers. See: awesome-static-analysis961 151 .

  • Code Analysis
    • flake8 - A wrapper around pycodestyle, pyflakes and McCabe.
    • coala - Language independent and easily extendable code analysis application.
    • code2flow137 14 - Turn your Python and JavaScript code into DOT flowcharts.
    • prospector749 86 - A tool to analyse Python code.
    • pycallgraph388 64 - A library that visualises the flow (call graph) of your Python application.
    • pylama343 53 - A code audit tool for Python and JavaScript.
    • pylint - A fully customizable source code analyzer.
  • Static Type Checkers
    • mypy - Check variable types during compile time.
  • Static Type Annotations Generators
    • MonkeyType1k 53 - A system for Python that generates static type annotations by collecting runtime types

Command-line Tools

Libraries for building command-line application.

  • Command-line Application Development
    • asciimatics724 69 - 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.
    • clint2k 243 - Python Command-line Application Tools.
    • colorama - Cross-platform colored terminal text.
    • docopt - Pythonic command line arguments parser.
    • Gooey6k 347 - Turn command line programs into a full GUI application with one line
    • Python-Fire8k 471 - A library for creating command line interfaces from absolutely any Python object.
    • python-prompt-toolkit4k 277 - A Library for building powerful interactive command lines.
  • Productivity Tools
    • aws-cli9k 2k - A universal command-line interface for Amazon Web Services.
    • bashplotlib126 10 - Making basic plots in the terminal.
    • caniusepython3296 41 - Determine what projects are blocking you from porting to Python 3.
    • cookiecutter5k 730 - A command-line utility that creates projects from cookiecutters (project templates).
    • doitlive2k 63 - A tool for live presentations in the terminal.
    • howdoi3k 222 - Instant coding answers via the command line.
    • httpie17k 1k - A command line HTTP client, a user-friendly cURL replacement.
    • mycli6k 400 - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
    • PathPicker4k 252 - Select files out of bash output.
    • percol2k 131 - Adds flavor of interactive selection to the traditional pipe concept on UNIX.
    • pgcli5k 281 - Postgres CLI with autocompletion and syntax highlighting.
    • SAWS4k 167 - A Supercharged AWS CLI.
    • thefuck36k 2k - Correcting your previous console command.
    • try363 21 - A dead simple CLI to try out python packages - It's never been easier.

Compatibility

Libraries for migrating from Python 2 to 3.

  • Python-Future - The missing compatibility layer between Python 2 and Python 3.
  • Python-Modernize336 22 - Modernizes Python code for eventual Python 3 migration.
  • Six - Python 2 and 3 compatibility utilities.

Computer Vision

Libraries for computer vision.

Concurrency and Parallelism

Libraries for concurrent and parallel execution.

  • eventlet - Asynchronous framework with WSGI support.
  • gevent - A coroutine-based Python networking library that uses greenlet824 156 .
  • multiprocessing - (Python standard library) Process-based "threading" interface.
  • threading - (Python standard library) Higher-level threading interface.
  • Tomorrow1k 95 - Magic decorator syntax for asynchronous code.
  • uvloop4k 175 - Ultra fast implementation of asyncio event loop on top of libuv.

Configuration

Libraries for storing and parsing configuration options.

  • config - Hierarchical config from the author of logging.
  • ConfigObj - INI file parser with validation.
  • ConfigParser - (Python standard library) INI file parser.
  • profig - Config from multiple formats with value conversion.
  • python-decouple424 49 - Strict separation of settings from code.

Cryptography

  • cryptography - A package designed to expose cryptographic primitives and recipes to Python developers.
  • hashids601 54 - Implementation of hashids in Python.
  • Paramiko - A Python (2.6+, 3.3+) implementation of the SSHv2 protocol, providing both client and server functionality.
  • Passlib - Secure password storage/hashing library, very high level.
  • PyNacl430 99 - Python binding to the Networking and Cryptography (NaCl) library.

Data Analysis

Libraries for data analyzing.

  • Blaze862 117 - NumPy and Pandas interface to Big Data.
  • Open Mining241 56 - Business Intelligence (BI) in Pandas interface.
  • 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.

  • Cerberus80 9 - A lightweight and extensible data validation library.
  • colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.
  • jsonschema1k 270 - An implementation of JSON Schema for Python.
  • schema1k 119 - A library for validating Python data structures.
  • Schematics2k 281 - Data Structure Validation.
  • valideer194 16 - Lightweight extensible data validation and adaptation library.
  • voluptuous907 153 - A Python data validation library.

Data Visualization

Libraries for visualizing data. See: awesome-javascript.

  • Altair533 57 - Declarative statistical visualization library for Python.
  • Bokeh8k 2k - Interactive Web Plotting for Python.
  • bqplot2k 188 - Interactive Plotting Library for the Jupyter Notebook
  • ggplot - Same API as ggplot2 for R.
  • Matplotlib - A Python 2D plotting library.
  • Pygal - A Python SVG Charts Creator.
  • PyGraphviz - Python interface to Graphviz.
  • PyQtGraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
  • Seaborn5k 805 - Statistical data visualization using Matplotlib.
  • VisPy1k 367 - High-performance scientific visualization based on OpenGL.

Database

Databases implemented in Python.

  • pickleDB - A simple and lightweight key-value store for Python.
  • PipelineDB - The Streaming SQL Database.
  • TinyDB2k 213 - A tiny, document-oriented database.
  • ZODB - A native object database for Python. A key-value and object graph database.

Database Drivers

Libraries for connecting and operating databases.

  • MySQL - awesome-mysql
    • mysqlclient705 141 - MySQL connector with Python 3 support (mysql-python fork).
    • oursql - A better MySQL connector with support for native prepared statements and BLOBs.
    • PyMySQL3k 764 - A pure Python MySQL driver compatible to mysql-python.
  • PostgreSQL - awesome-postgres3k 245
    • psycopg2 - The most popular PostgreSQL adapter for Python.
    • queries182 20 - A wrapper of the psycopg2 library for interacting with PostgreSQL.
    • txpostgres99 32 - Twisted based asynchronous driver for PostgreSQL.
  • Other Relational Databases
    • apsw - Another Python SQLite wrapper.
    • dataset3k 207 - Store Python dicts in a database - works with SQLite, MySQL, and PostgreSQL.
    • pymssql - A simple database interface to Microsoft SQL Server.
  • NoSQL Databases
    • cassandra-python-driver890 415 - Python driver for Cassandra.
    • HappyBase351 108 - A developer-friendly library for Apache HBase.
    • Plyvel156 28 - A fast and feature-rich Python interface to LevelDB.
    • py2neo - Python wrapper client for Neo4j's restful interface.
    • pycassa516 154 - Python Thrift driver for Cassandra.
    • PyMongo - The official Python client for MongoDB.
    • redis-py5k 1k - The Redis Python Client.
    • telephus87 32 - Twisted based client for Cassandra.
    • txRedis91 29 - Twisted based client for Redis.

Date and Time

Libraries for working with dates and times.

  • Chronyk259 12 - A Python 3 library for parsing human-written times and dates.
  • dateutil457 159 - Extensions to the standard Python datetime module.
  • delorean1k 66 - A library for clearing up the inconvenient truths that arise dealing with datetimes.
  • moment177 7 - A Python library for dealing with dates/times. Inspired by Moment.js.
  • Pendulum2k 100 - Python datetimes made easy.
  • PyTime17 3 - 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.py176 17 - Providing user-friendly functions to help perform common date and time actions.
  • maya2k 70 - Datetimes for Humans, Maya is mostly built around the headaches and use-cases around parsing datetime data from websites.

Debugging Tools

Libraries for debugging code.

  • pdb-like Debugger
    • ipdb - IPython-enabled pdb.
    • pdb++ - Another drop-in replacement for pdb.
    • pudb - A full-screen, console-based Python debugger.
    • remote-pdb51 12 - Remote vanilla PDB (over TCP sockets).
    • wdb1k 83 - An improbable web debugger through WebSockets.
  • Profiler
    • line_profiler1k 122 - Line-by-line profiling.
    • memory_profiler1k 145 - Monitor Memory usage of Python code.
    • Pyflame958 71 - Attach this Ptracing Profiler to any processes running Python. Perfect for profiling production webservers.
    • profiling3k 121 - An interactive Python profiler.
    • vprof3k 157 - Visual Python profiler.
  • Others
    • django-debug-toolbar785 112 - Display various debug information for Django.
    • django-devserver948 87 - A drop-in replacement for Django's runserver.
    • flask-debugtoolbar579 104 - A port of the django-debug-toolbar to flask.
    • hunter192 7 - Hunter is a flexible code tracing toolkit.
    • lptrace541 23 - strace for Python programs.
    • manhole153 8 - Debug service that will accept unix domain socket connections and present the stacktraces for all threads and an interactive prompt.
    • pyelftools482 192 - Parsing and analyzing ELF files and DWARF debugging information.
    • pyringe1k 37 - Debugger capable of attaching to and injecting code into Python processes.

Deep Learning

Frameworks for Neural Networks and Deep Learning. See: awesome-deep-learning4k 1k .

  • Caffe21k 12k - A fast open framework for deep learning..
  • Keras24k 10k - A high-level neural networks library and capable of running on top of either TensorFlow or Theano.
  • MXNet12k 5k - A deep learning framework designed for both efficiency and flexibility.
  • Neupy - Running and testing different Artificial Neural Networks algorithms.
  • Pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.
  • Serpent.AI3k 240 - Game agent framework. Use any video game as a deep learning sandbox.
  • TensorFlow100k 52k - The most popular Deep Learning framework created by Google.
  • Theano8k 3k - A library for fast numerical computation.

DevOps Tools

Software and libraries for DevOps.

  • Ansible31k 13k - A radically simple IT automation platform.
  • Cloud-Init - A multi-distribution package that handles early initialization of a cloud instance.
  • cuisine1k 130 - Chef-like functionality for Fabric.
  • Docker Compose - Fast, isolated development environments using Docker.
  • Fabric - A simple, Pythonic tool for remote execution and deployment.
  • Fabtools48 13 - Tools for writing awesome Fabric files.
  • honcho1k 125 - A Python clone of Foreman5k 569 , for managing Procfile-based applications.
  • OpenStack - Open source software for building private and public clouds.
  • pexpect1k 282 - Controlling interactive programs in a pseudo-terminal like GNU expect.
  • psutil3k 653 - A cross-platform process and system utilities module.
  • SaltStack9k 5k - Infrastructure automation and management system.
  • supervisor4k 796 - Supervisor process control system for UNIX.

Distribution

Libraries to create packaged executables for release distribution.

  • dh-virtualenv1k 127 - 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).
  • PyInstaller4k 1k - Converts Python programs into stand-alone executables (cross-platform).
  • pynsist - A tool to build Windows installers, installers bundle Python itself.

Documentation

Libraries for generating project documentation.

  • Sphinx - Python Documentation generator.
  • MkDocs - Markdown friendly documentation generator.
  • pdoc591 108 - Epydoc replacement to auto generate API documentation for Python libraries.
  • Pycco101 25 - The literate-programming-style documentation generator.

Downloader

Libraries for downloading.

  • s3cmd2k 751 - A command line tool for managing Amazon S3 and CloudFront.
  • s4cmd628 124 - 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.

  • alipay25 12 - Unofficial Alipay API for Python.
  • Cartridge560 296 - A shopping cart app built using the Mezzanine.
  • django-oscar - An open-source e-commerce framework for Django.
  • django-shop640 234 - A Django based shop system.
  • merchant909 172 - A Django app to accept payments from various payment processors.
  • money110 11 - Money class with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution.
  • python-currencies11 0 - Display money format and its filthy currencies.
  • forex-python62 17 - Foreign exchange rates, Bitcoin price index and currency conversion.
  • saleor - An e-commerce storefront for Django.
  • shoop - An open source E-Commerce platform based on Django.

Editor Plugins and IDEs

  • Emacs
    • Elpy1k 215 - Emacs Python Development Environment.
  • Sublime Text
    • Anaconda2k 256 - Anaconda turns your Sublime Text 3 in a full featured Python development IDE.
    • SublimeJEDI833 103 - A Sublime Text plugin to the awesome auto-complete library Jedi.
  • Vim
    • Jedi-vim3k 336 - Vim bindings for the Jedi auto-completion library for Python.
    • Python-mode469 84 - An all in one plugin for turning Vim into a Python IDE.
    • YouCompleteMe15k 2k - Includes Jedi3k 305 -based completion engine for Python.
  • Visual Studio
    • PTVS2k 623 - Python Tools for Visual Studio.
  • Visual Studio Code
    • Python2k 329 - An extension with rich support for the Python language, with features including linting, IntelliSense, formatting, refactoring, debugging, unit tests, and jupyter support.
    • Magic Python946 39 - Cutting edge Python syntax highlighter for Sublime Text, Atom, and Visual Studio Code. Used by GitHub to highlight your Python code!
  • IDE
    • LiClipse - Free polyglot IDE based on Eclipse. Uses PyDev for Python support.
    • PyCharm - Commercial Python IDE by JetBrains. Has free community edition available.
    • Spyder3k 788 - Open Source Python IDE.

Email

Libraries for sending and parsing email.

  • envelopes - Mailing for human beings.
  • flanker1k 152 - A email address and Mime parsing library.
  • imbox541 53 - Python IMAP for Humans.
  • inbox.py1k 67 - Python SMTP Server for Humans.
  • lamson441 97 - Pythonic SMTP Application Server.
  • Marrow Mailer47 15 - High-performance extensible mail delivery framework.
  • modoboa320 70 - A mail hosting and management platform including a modern and simplified Web UI.
  • Nylas Sync Engine2k 249 - Providing a RESTful API on top of a powerful email sync platform.
  • yagmail834 63 - Yet another Gmail/SMTP client.

Environment Management

Libraries for Python version and environment management.

  • Pipenv6k 355 - Sacred Marriage of Pipfile, Pip, & Virtualenv.
  • p730 56 - Dead simple interactive Python version management.
  • pyenv3k 337 - Simple Python version management.
  • venv - (Python standard library in Python 3.3+) Creating lightweight virtual environments.
  • virtualenv - A tool to create isolated Python environments.
  • virtualenvwrapper - A set of extensions to virtualenv.

Files

Libraries for file manipulation and MIME type detection.

  • imghdr - (Python standard library) Determine the type of an image.
  • mimetypes - (Python standard library) Map filenames to MIME types.
  • path.py794 121 - A module wrapper for os.path.
  • pathlib - (Python standard library in Python 3.4+) An cross-platform, object-oriented path library.
  • python-magic935 157 - A Python interface to the libmagic file type identification library.
  • Unipath442 41 - An object-oriented approach to file/directory operations.
  • watchdog3k 402 - API and shell utilities to monitor file system events.

Foreign Function Interface

Libraries for providing foreign function interface.

  • cffi - Foreign Function Interface for Python calling C code.
  • ctypes - (Python standard library) Foreign Function Interface for Python calling C code.
  • PyCUDA - A Python wrapper for Nvidia's CUDA API.
  • SWIG - Simplified Wrapper and Interface Generator.

Forms

Libraries for working with forms.

  • Deform272 149 - Python HTML form generation library influenced by the formish form generation library.
  • django-bootstrap32k 791 - Bootstrap 3 integration with Django.
  • django-crispy-forms529 98 - A Django app which lets you create beautiful forms in a very elegant and DRY way.
  • django-remote-forms169 78 - A platform independent Django form serializer.
  • WTForms729 275 - A flexible forms validation and rendering library.

Functional Programming

Functional Programming with Python.

  • CyToolz371 33 - Cython implementation of Toolz: High performance functional utilities.
  • fn.py1k 79 - Functional programming in Python: implementation of missing features to enjoy FP.
  • funcy2k 92 - A fancy and practical functional tools.
  • Toolz1k 129 - A collection of functional utilities for iterators, functions, and dictionaries.

GUI

Libraries for working with graphical user interface applications.

  • curses - Built-in wrapper for ncurses used to create terminal GUI applications.
  • Eel2k 70 - Little library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.
  • enaml556 85 - Creating beautiful user-interfaces with Declaratic Syntax like QML.
  • Flexx1k 143 - Flexx is a pure Python toolkit for creating GUI's, that uses web technology for its rendering.
  • kivy - A library for creating NUI applications, running on Windows, Linux, Mac OS X, Android and iOS.
  • pyglet - A cross-platform windowing and multimedia library for Python.
  • PyGObject - Python Bindings for GLib/GObject/GIO/GTK+ (GTK+3)
  • PyQt - Python bindings for the Qt cross-platform application and UI framework, with support for both Qt v4 and Qt v5 frameworks.
  • PySide - Python bindings for the Qt cross-platform application and UI framework, supporting the Qt v4 framework.
  • pywebview758 98 - A lightweight cross-platform native wrapper around a webview component that allows to display HTML content in its own native dedicated window
  • Tkinter - Tkinter is Python's de-facto standard GUI package.
  • Toga1k 178 - A Python native, OS native GUI toolkit.
  • urwid - A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc.
  • wxPython - A blending of the wxWidgets C++ class library with the Python.

Game Development

Awesome game development libraries.

  • Cocos2d - cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is based on pyglet.
  • Panda3D - 3D game engine developed by Disney and maintained by Carnegie Mellon's Entertainment Technology Center. Written in C++, completely wrapped in Python.
  • 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.
  • RenPy - A Visual Novel engine.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • django-countries452 156 - A Django app that provides country choices for use with forms, flag icons static files, and a country field for models.
  • GeoDjango - A world-class geographic web framework.
  • GeoIP161 38 - Python API for MaxMind GeoIP Legacy Database.
  • geojson288 57 - Python bindings and utilities for GeoJSON.
  • geopy2k 376 - Python Geocoding Toolbox.
  • pygeoip323 71 - Pure Python GeoIP API.

HTML Manipulation

Libraries for working with HTML and XML.

  • BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
  • bleach422 79 - A whitelist-based HTML sanitization and text linkification library.
  • cssutils - A CSS library for Python.
  • html5lib648 168 - 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.
  • MarkupSafe61 22 - Implements a XML/HTML/XHTML Markup safe string for Python.
  • pyquery1k 139 - A jQuery-like library for parsing HTML.
  • untangle273 42 - Converts XML documents to Python objects for easy access.
  • WeasyPrint - A visual rendering engine for HTML and CSS that can export to PDF.
  • xmldataset - Simple XML Parsing.
  • xmltodict3k 276 - Working with XML feel like you are working with JSON.

HTTP

Libraries for working with HTTP.

  • grequests2k 223 - requests + gevent for asynchronous HTTP requests.
  • httplib2171 48 - Comprehensive HTTP client library.
  • requests - HTTP Requests for Humans™.
  • treq197 64 - Python requests like API built on top of Twisted's HTTP client.
  • urllib31k 556 - A HTTP library with thread-safe connection pooling, file post support, sanity friendly.

Hardware

Libraries for programming with hardware.

  • ino - Command line toolkit for working with Arduino.
  • keyboard701 58 - Hook and simulate global keyboard events on Windows and Linux.
  • mouse2 1 - Hook and simulate global mouse events on Windows and Linux.
  • Pingo - Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel Galileo, etc.
  • Pyro - Python Robotics.
  • PyUserInput196 41 - A module for cross-platform control of the mouse and keyboard.
  • scapy1k 390 - A brilliant packet manipulation library.
  • wifi206 106 - A Python library and command line tool for working with WiFi on Linux.

Image Processing

Libraries for manipulating images.

  • hmap77 6 - Image histogram remapping.
  • imgSeek - A project for searching a collection of images using visual similarity.
  • nude.py518 92 - Nudity detection.
  • pagan57 6 - Retro identicon (Avatar) generation based on input string and hash.
  • pillow5k 1k - Pillow is the friendly PIL fork.
  • pyBarcode - Create barcodes in Python without needing PIL.
  • pygram23 3 - Instagram-like image filters.
  • python-qrcode1k 267 - A pure Python QR Code generator.
  • Quads342 22 - Computer art based on quadtrees.
  • scikit-image - A Python library for (scientific) image processing.
  • thumbor5k 623 - A smart imaging service. It enables on-demand crop, re-sizing and flipping of images.
  • wand726 172 - Python bindings for MagickWand, C API for ImageMagick.

Implementations

Implementations of Python.

  • CLPython239 33 - Implementation of the Python programming language written in Common Lisp.
  • CPython20k 7k - Default, most widely used implementation of the Python programming language written in C.
  • Cython - Optimizing Static Compiler for Python. Uses type mixins to compile Python into C or C++ modules resulting in large performance gains
  • Grumpy - More compiler than interpreter as more powerful CPython2.7 replacement (alpha).
  • IronPython350 65 - Implementation of the Python programming language written in C# targeting the .NET Framework and Mono.
  • Jython - Implementation of Python programming language written in Java for the Java virtual machine (JVM).
  • MicroPython6k 2k - MicroPython - a lean and efficient Python programming language implementation for microcontrollers and constrained systems
  • Numba - Python JIT compiler to LLVM aimed at scientific Python.
  • PeachPy993 66 - 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.
  • Pyjion1k 64 - A JIT for Python based upon CoreCLR.
  • 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.
  • PySec28 9 - Hardened version of python that makes it easier for security professionals and developers to write applications more resilient to attacks and manipulations.
  • Pyston5k 385 - A Python implementation built using LLVM and modern JIT techniques with the goal of achieving good performance.
  • 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.

Interactive Interpreter

Interactive Python interpreters (REPL).

Internationalization

Libraries for working with i18n.

  • Babel - An internationalization library for Python.
  • PyICU36 24 - A wrapper of International Components for Unicode C++ library (ICU).

Job Scheduler

Libraries for scheduling jobs.

  • APScheduler - A light but powerful in-process task scheduler that lets you schedule functions.
  • django-schedule561 226 - A calendaring app for Django.
  • doit - A task runner and build tool.
  • gunnery507 37 - Multipurpose task execution tool for distributed systems with web-based interface.
  • Joblib - A set of tools to provide lightweight pipelining in Python.
  • Plan1k 80 - Writing crontab file in Python like a charm.
  • schedule3k 375 - Python job scheduling for humans.
  • Spiff478 113 - A powerful workflow engine implemented in pure Python.
  • TaskFlow - A Python library that helps to make task execution easy, consistent and reliable.

Logging

Libraries for generating and working with logs.

  • Eliot158 7 - Logging for complex & distributed systems.
  • logbook - Logging replacement for Python.
  • logging - (Python standard library) Logging facility for Python.
  • raven1k 798 - Python client for Sentry, a log/error tracking, crash reporting and aggregation platform for web applications.

Machine Learning

Libraries for Machine Learning. See: awesome-machine-learning.

  • Metrics197 44 - Machine learning evaluation metrics.
  • NuPIC6k 2k - Numenta Platform for Intelligent Computing.
  • scikit-learn - The most popular Python library for Machine Learning.
  • Spark ML - Apache Spark's scalable Machine Learning library.
  • vowpal_porpoise86 23 - A lightweight Python wrapper for Vowpal Wabbit5k 2k .
  • xgboost9k 5k - A scalable, portable, and distributed gradient boosting library.

MapReduce

Frameworks and libraries for MapReduce.

  • PySpark - Apache Spark Python API.
  • luigi8k 2k - A module that helps you build complex pipelines of batch jobs.
  • mrjob2k 584 - Run MapReduce jobs on Hadoop or Amazon Web Services.
  • streamparse1k 230 - Run Python code against real-time streams of data. Integrates with Apache Storm.
  • dask - A flexible parallel computing library for analytic computing.

Microsoft Windows

Python programming on Microsoft Windows.

  • Python(x,y) - Scientific-applications-oriented Python Distribution based on Qt and Spyder.
  • pythonlibs - Unofficial Windows binaries for Python extension packages.
  • PythonNet948 186 - Python Integration with the .NET Common Language Runtime (CLR).
  • PyWin32 - Python Extensions for Windows.
  • WinPython - Portable development environment for Windows 7/8.

Miscellaneous

Useful libraries or tools that don't fit in the categories above.

  • blinker554 82 - A fast Python in-process signal/event dispatching system.
  • itsdangerous348 40 - Various helpers to pass trusted data to untrusted environments.
  • pluginbase570 86 - A simple but flexible plugin system for Python.
  • Pychievements60 3 - A framework for creating and tracking achievements.
  • Tryton - A general purpose business framework.

Natural Language Processing

Libraries for working with human languages.

  • gensim4k 2k - Topic Modelling for Humans.
  • Jieba9k 3k - Chinese text segmentation.
  • langid.py294 48 - Stand-alone language identification system.
  • NLTK - A leading platform for building Python programs to work with human language data.
  • Pattern - A web mining module for the Python.
  • polyglot524 118 - Natural language pipeline supporting hundreds of languages.
  • SnowNLP715 188 - A library for processing Chinese text.
  • spaCy - A library for industrial-strength natural language processing in Python and Cython.
  • TextBlob4k 630 - Providing a consistent API for diving into common NLP tasks.

Network Virtualization

Tools and libraries for Virtual Networking and SDN (Software Defined Networking).

  • Mininet - A popular network emulator and API written in Python.
  • POX218 228 - An open source development platform for Python-based Software Defined Networking (SDN) control applications, such as OpenFlow SDN controllers.
  • Pyretic - A member of the Frenetic family of SDN programming languages that provides powerful abstractions over network switches or emulators.
  • SDX Platform4 2 - SDN based IXP implementation that leverages Mininet, POX and Pyretic.

Networking

Libraries for networking programming.

  • asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.
  • diesel440 39 - Greenlet-based event I/O Framework for Python.
  • pulsar2k 138 - Event-driven concurrent framework for Python.
  • pyzmq - A Python wrapper for the ZeroMQ message library.
  • Twisted - An event-driven networking engine.
  • txZMQ146 47 - Twisted based wrapper for the ZeroMQ message library.
  • NAPALM626 170 - Cross-vendor API to manipulate network devices.

News Feed

Libraries for building user's activities.

  • django-activity-stream1k 395 - Generating generic activity streams from the actions on your site.
  • Stream-Framework3k 398 - Building newsfeed and notification systems using Cassandra and Redis.

ORM

Libraries that implement Object-Relational Mapping or data mapping techniques.

  • Relational Databases
    • Django Models - A part of Django.
    • SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper.
    • Orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.
    • Peewee5k 1k - A small, expressive ORM.
    • PonyORM - ORM that provides a generator-oriented interface to SQL.
    • pyDAL205 83 - A pure Python Database Abstraction Layer.
    • python-sql - Write SQL queries pythonically.
  • NoSQL Databases
  • Others
    • butterdb - A Python ORM for Google Drive Spreadsheets.
    • dataset3k 207 - A JSON-based database.

Package Management

Libraries for package and dependency management.

  • pip - The Python package and dependency manager.
  • conda2k 610 - Cross-platform, Python-agnostic binary package manager.
  • Curdling - Curdling is a command line tool for managing Python packages.
  • pip-tools334 38 - A set of tools to keep your pinned Python dependencies fresh.
  • wheel - The new standard of Python distribution and are intended to replace eggs.

Package Repositories

Local PyPI repository server and proxies.

  • warehouse2k 356 - Next generation Python Package Repository (PyPI).
  • bandersnatch - PyPI mirroring tool provided by Python Packaging Authority (PyPA).
  • devpi - PyPI server and packaging/testing/release tool.
  • localshop5 1 - Local PyPI server (custom packages and auto-mirroring of pypi).

Permissions

Libraries that allow or deny users access to data or functionality.

  • Carteblanche33 5 - Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.
  • django-guardian658 155 - Implementation of per object permissions for Django 1.2+
  • django-rules492 47 - A tiny but powerful app providing object-level permissions to Django, without requiring a database.

Processes

Libraries for starting and communicating with OS processes.

  • delegator.py583 35 - Subprocesses for Humans™ 2.0.
  • sarge - Yet another wrapper for subprocess.
  • sh4k 380 - A full-fledged subprocess replacement for Python.

Queue

Libraries for working with event and task queues.

  • celery - An asynchronous task queue/job queue based on distributed message passing.
  • huey2k 197 - Little multi-threaded task queue.
  • mrq671 87 - Mr. Queue - A distributed worker task queue in Python using Redis & gevent.
  • rq - Simple job queues for Python.
  • simpleq78 4 - A simple, infinitely scalable, Amazon SQS based queue.

Recommender Systems

Libraries for building recommender systems.

  • annoy3k 376 - Approximate Nearest Neighbors in C++/Python optimized for memory usage.
  • fastFM485 135 - A library for Factorization Machines.
  • implicit344 93 - A fast Python implementation of collaborative filtering for implicit datasets.
  • libffm517 195 - A library for Field-aware Factorization Machine (FFM).
  • LightFM1k 257 - A Python implementation of a number of popular recommendation algorithms.
  • surprise - A scikit for building and analyzing recommender systems.
  • TensorRec154 17 - A Recommendation Engine Framework in TensorFlow.

RESTful API

Libraries for developing RESTful APIs.

  • Django
  • Flask
    • eve706 104 - REST API framework powered by Flask, MongoDB and good intentions.
    • flask-api-utils35 3 - Taking care of API representation and authentication for Flask.
    • flask-api - Browsable Web APIs for Flask.
    • flask-restful3k 625 - Quickly building REST APIs for Flask.
    • flask-restless832 288 - Generating RESTful APIs for database models defined with SQLAlchemy.
  • Pyramid
    • cornice33 9 - A RESTful framework for Pyramid.
  • Framework agnostic
    • falcon - A high-performance framework for building cloud APIs and web app backends.
    • hug5k 334 - A Python3 framework for cleanly exposing APIs over HTTP and the Command Line with automatic documentation and validation.
    • restless680 92 - Framework agnostic REST framework based on lessons learned from Tastypie.
    • ripozo210 24 - Quickly creating REST/HATEOAS/Hypermedia APIs.
    • sandman2k 134 - Automated REST APIs for existing database-driven systems.
    • apistar791 71 - A smart Web API framework, designed for Python 3.

RPC Servers

RPC-compatible servers.

Science

Libraries for scientific computing.

  • astropy - A community Python library for Astronomy.
  • bcbio-nextgen824 455 - Providing best-practice pipelines for fully automated high throughput sequencing analysis.
  • bccb363 192 - Collection of useful code related to biological analysis.
  • Biopython - Biopython is a set of freely available tools for biological computation.
  • cclib - A library for parsing and interpreting the results of computational chemistry packages.
  • Colour - A colour science package implementing a comprehensive number of colour theory transformations and algorithms.
  • NetworkX - A high-productivity software for complex networks.
  • NIPY - A collection of neuroimaging toolkits.
  • NumPy - A fundamental package for scientific computing with Python.
  • Open Babel - A chemical toolbox designed to speak the many languages of chemical data.
  • ObsPy402 338 - A Python toolbox for seismology.
  • PyDy - Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion.
  • PyMC2k 656 - Markov Chain Monte Carlo sampling toolkit.
  • RDKit - Cheminformatics and Machine Learning Software.
  • SciPy - A Python-based ecosystem of open-source software for mathematics, science, and engineering.
  • statsmodels2k 1k - Statistical modeling and econometrics in Python.
  • SymPy5k 3k - A Python library for symbolic mathematics.
  • Zipline7k 2k - A Pythonic algorithmic trading library.
  • SimPy - A process-based discrete-event simulation framework.

Search

Libraries and software for indexing and performing search queries on data.

Serialization

Libraries for serializing complex data types

  • marshmallow2k 302 - marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.

Serverless Frameworks

Frameworks for developing serverless Python code.

  • apex6k 471 - Build, deploy, and manage AWS Lambda functions with ease.
  • python-lambda543 94 - A toolkit for developing and deploying Python code in AWS Lambda.
  • Zappa6k 707 - A tool for deploying WSGI applications on AWS Lambda and API Gateway.

Specific Formats Processing

Libraries for parsing and manipulating specific text formats.

  • General
    • tablib3k 463 - A module for Tabular Datasets in XLS, CSV, JSON, YAML.
  • Office
    • Marmir138 19 - Takes Python data structures and turns them into spreadsheets.
    • openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
    • pyexcel283 58 - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and xlsm files.
    • python-docx867 326 - Reads, queries and modifies Microsoft Word 2007/2008 docx files.
    • python-pptx457 145 - Python library for creating and updating PowerPoint (.pptx) files.
    • relatorio - Templating OpenDocument files.
    • unoconv1k 293 - Convert between any document format supported by LibreOffice/OpenOffice.
    • 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.
    • xlwt681 236 / xlrd1k 279 - Writing and reading data and formatting information from Excel files.
  • PDF
    • PDFMiner907 204 - A tool for extracting information from PDF documents.
    • PyPDF21k 447 - A library capable of splitting, merging and transforming PDF pages.
    • ReportLab - Allowing Rapid creation of rich PDF documents.
  • Markdown
    • Mistune1k 135 - Fastest and full featured pure Python parsers of Markdown.
    • Python-Markdown1k 357 - A Python implementation of John Gruber’s Markdown.
  • YAML
    • PyYAML - YAML implementations for Python.
  • CSV
    • csvkit1k 157 - Utilities for converting to and working with CSV.
  • Archive
    • unp187 7 - A command line tool that can unpack archives easily.

Static Site Generator

Static site generator is a software that takes some text + templates as input and produces HTML files on the output.

  • Cactus - Static site generator for designers.
  • Hyde - Jinja2-based static web site generator.
  • Lektor - An easy to use static CMS and blog engine.
  • Nikola - A static website and blog generator.
  • Pelican - Uses Markdown or ReST for content and Jinja 2 for themes. Supports DVCS, Disqus. AGPL.
  • Tinkerer - Tinkerer is a blogging engine/.static website generator powered by Sphinx.

Tagging

Libraries for tagging items.

Template Engine

Libraries and tools for templating and lexing.

  • Genshi - Python templating toolkit for generation of web-aware output.
  • Jinja21k 325 - A modern and designer friendly templating language.
  • Mako - Hyperfast and lightweight templating for the Python platform.

Testing

Libraries for testing codebases and generating test data.

  • Testing Frameworks
    • hypothesis1k 131 - Hypothesis is an advanced Quickcheck style property based testing library.
    • mamba - The definitive testing tool for Python. Born under the banner of BDD.
    • nose1k 383 - A nicer unittest for Python.
    • nose2385 104 - The successor to nose, based on unittest2.
    • pytest - A mature full-featured Python testing tool.
    • Robot Framework2k 653 - A generic test automation framework.
    • unittest - (Python standard library) Unit testing framework.
  • Test Runners
    • green555 68 - A clean, colorful test runner.
    • tox - Auto builds and tests distributions in multiple Python versions
  • GUI / Web Testing
    • locust6k 913 - Scalable user load testing tool written in Python.
    • PyAutoGUI86 11 - PyAutoGUI is a cross-platform GUI automation Python module for human beings.
    • Selenium - Python bindings for Selenium WebDriver.
    • sixpack1k 175 - A language-agnostic A/B Testing framework.
    • splinter2k 377 - Open source tool for testing web applications.
  • Mock
    • doublex - Powerful test doubles framework for Python.
    • freezegun1k 121 - Travel through time by mocking the datetime module.
    • httmock308 38 - A mocking library for requests for Python 2.6+ and 3.2+.
    • httpretty1k 219 - HTTP request mock tool for Python.
    • mock - (Python standard library) A mocking and patching library.
    • Mocket79 12 - Socket Mock Framework plus HTTP[S]/asyncio/gevent mocking library with recording/replaying capability.
    • responses790 115 - A utility library for mocking out the requests Python library.
    • VCR.py937 154 - Record and replay HTTP interactions on your tests.
  • Object Factories
    • factory_boy309 57 - A test fixtures replacement for Python.
    • mixer433 61 - Another fixtures replacement. Supported Django, Flask, SQLAlchemy, Peewee and etc.
    • model_mommy747 177 - Creating random fixtures for testing in Django.
  • Code Coverage
  • Fake Data
    • mimesis694 90 - is a Python library that help you generate fake data.
    • fake2db2k 106 - Fake database generator.
    • faker6k 866 - A Python package that generates fake data.
    • radar - Generate random datetime / time.
  • Error Handler
    • FuckIt.py1k 53 - FuckIt.py uses state-of-the-art technology to make sure your Python code runs whether it has any right to or not.

Text Processing

Libraries for parsing and manipulating plain texts.

  • General
    • chardet829 141 - Python 2/3 compatible character encoding detector.
    • difflib - (Python standard library) Helpers for computing deltas.
    • ftfy2k 78 - Makes Unicode text less broken and more consistent automagically.
    • fuzzywuzzy3k 404 - Fuzzy String Matching.
    • Levenshtein84 24 - Fast computation of Levenshtein distance and string similarity.
    • pangu.py67 11 - Spacing texts for CJK and alphanumerics.
    • pyfiglet359 61 - An implementation of figlet written in Python.
    • pypinyin841 162 - Convert Chinese hanzi to pinyin.
    • shortuuid94 6 - A generator library for concise, unambiguous and URL-safe UUIDs.
    • unidecode - ASCII transliterations of Unicode text.
    • uniout51 6 - Print readable chars instead of the escaped string.
    • xpinyin457 125 - A library to translate Chinese hanzi (漢字) to pinyin (拼音).
  • Slugify
    • awesome-slugify156 11 - A Python slugify library that can preserve unicode.
    • python-slugify388 58 - A Python slugify library that translates unicode to ASCII.
    • unicode-slugify150 24 - A slugifier that generates unicode slugs with Django as a dependency.
  • Parser
    • phonenumbers2k 261 - Parsing, formatting, storing and validating international phone numbers.
    • PLY - Implementation of lex and yacc parsing tools for Python
    • Pygments - A generic syntax highlighter.
    • pyparsing - A general purpose framework for generating parsers.
    • python-nameparser211 38 - Parsing human names into their individual components.
    • python-user-agents515 115 - Browser user agent parser.
    • sqlparse1k 255 - A non-validating SQL parser.

Third-party APIs

Libraries for accessing third party services APIs. See: List of Python API Wrappers and Libraries36 5 .

  • apache-libcloud - One Python library for all clouds.
  • boto33k 571 - Python interface to Amazon Web Services.
  • django-wordpress - WordPress models and views for Django.
  • facebook-sdk583 298 - Facebook Platform Python SDK.
  • facepy659 198 - Facepy makes it really easy to interact with Facebook's Graph API
  • gmail1k 140 - A Pythonic interface for Gmail.
  • google-api-python-client2k 994 - Google APIs Client Library for Python.
  • gspread3k 477 - Google Spreadsheets Python API.
  • twython1k 383 - A Python wrapper for the Twitter API.

URL Manipulation

Libraries for parsing URLs.

  • furl1k 83 - A small Python library that makes parsing and manipulating URLs easy.
  • purl202 27 - A simple, immutable URL class with a clean API for interrogation and manipulation.
  • pyshorteners168 30 - A pure Python URL shortening lib.
  • short_url91 22 - Python implementation for generating Tiny URL and bit.ly-like URLs.
  • webargs512 77 - A friendly library for parsing HTTP request arguments, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, and Pyramid.

Video

Libraries for manipulating video and GIFs.

  • moviepy - A module for script-based movie editing with many formats, including animated GIFs.
  • scikit-video13 1 - Video processing routines for SciPy.

WSGI Servers

WSGI-compatible web servers.

  • bjoern - Asynchronous, very fast and written in C.
  • fapws3 - Asynchronous (network side only), written in C.
  • gunicorn - Pre-forked, partly written in C.
  • meinheld - Asynchronous, partly written in C.
  • netius74 9 - Asynchronous, very fast.
  • paste - Multi-threaded, stable, tried and tested.
  • rocket - Multi-threaded.
  • uWSGI - A project aims at developing a full stack for building hosting services, written in C.
  • waitress - Multi-threaded, powers Pyramid.
  • Werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.

Web Content Extracting

Libraries for extracting web contents.

  • Haul15 2 - An Extensible Image Crawler.
  • html2text414 109 - Convert HTML to Markdown-formatted text.
  • lassie371 25 - Web Content Retrieval for Humans.
  • micawber369 56 - A small library for extracting rich content from URLs.
  • newspaper5k 906 - News extraction, article extraction and content curation in Python.
  • opengraph41 25 - A Python module to parse the Open Graph Protocol
  • python-goose3k 691 - HTML Content/Article Extractor.
  • python-readability1k 268 - Fast Python port of arc90's readability tool.
  • sanitize3 0 - Bringing sanity to world of messed-up data.
  • sumy1k 225 - A module for automatic summarization of text documents and HTML pages.
  • textract2k 258 - Extract text from any document, Word, PowerPoint, PDFs, etc.
  • toapi1k 80 - Every web site provides APIs

Web Crawling

Libraries for scraping websites.

  • cola1k 564 - A distributed crawling framework.
  • Demiurge58 7 - PyQuery-based scraping micro-framework.
  • feedparser - Universal feed parser.
  • Grab - Site scraping framework.
  • MechanicalSoup2k 116 - A Python library for automating interaction with websites.
  • portia6k 957 - Visual scraping for Scrapy.
  • pyspider10k 3k - A powerful spider system.
  • RoboBrowser3k 237 - A simple, Pythonic library for browsing the web without a standalone web browser.
  • Scrapy - A fast high-level screen scraping and web crawling framework.

Web Frameworks

Full stack web frameworks.

  • Bottle - A fast, simple and lightweight WSGI micro web-framework.
  • Dash - Built on top of Flask, React and Plotly aimed at analytical web applications.
  • Django - The most popular web framework in Python.
  • Flask - A microframework for Python.
  • Pyramid - A small, fast, down-to-earth, open source Python web framework.
  • Sanic8k 794 - Web server that's written to go fast.
  • Tornado - A Web framework and asynchronous networking library.

WebSocket

Libraries for working with WebSocket.

Services

Online tools and APIs to simplify development.

Continuous Integration

See: awesome-CIandCD.

  • CircleCI - A CI service that can run very fast parallel testing. (GitHub only)
  • Travis CI - A popular CI service for your open source and private projects. (GitHub only)
  • Vexor CI - A continuous integration tool for private apps with pay-per-minute billing model.
  • Wercker - A Docker-based platform for building and deploying applications and microservices.

Code Quality

  • Codacy - Automated Code Review to ship better code, faster.
  • Codecov - Code coverage dashboard.
  • CodeFactor - Automated Code Review for Git.
  • Landscape - Hosted continuous Python code metrics.

Resources

Where to discover new Python libraries.

Podcasts

Twitter

Websites

Weekly

Other Awesome Lists

List of lists.

Contributing

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.