Comprehensive List of Python Libraries









Reading time is approximately 5 minutes.

Library Name and Introduction

Chardet is a character encoding detector that can automatically detect the encoding of text, web pages, and XML.

colorama is mainly used to add various colors to text and is very simple to use.

Prettytable is mainly used to build formatted output in terminal or browser.

difflib, a standard library in [Python], computes text differences.

Levenshtein quickly calculates string similarity.

fuzzywuzzy is for fuzzy string matching.

esmre is a regex accelerator.

shortuuid is a concise URL/UUID function library.

ftfy is a Unicode text tool.

unidecode is a function library for converting ASCII and Unicode text.

xpinyin is a library for converting Chinese characters to pinyin.

pangu.py adjusts the spacing between letters and numbers in Chinese, Japanese, and Korean text.

pyfiglet is a Python program that generates ASCII art images using characters.

uniout extracts readable characters from strings.

awesome slugify is a Python slugify library for handling Unicode.

python-slugify is a slugify function library that converts Unicode to ASCII internal codes.

unicode-slugify generates Unicode internal codes and is a dependency package for Django.

ply is a parsing tool for Python, similar to lex and yacc.

phonenumbers parses, formats, stores, and validates international phone numbers.

python-user-agents is a parser for browser user agents.

sqlparse is an SQL parser.

pygments is a universal syntax highlighting tool.

python-nameparser parses names into individual components.

pyparsing is a general-purpose parser generation framework.

tablib is a data format library that includes XLS, CSV, JSON, and YAML.

python-docx reads, queries, and modifies docx documents, supporting Microsoft Word 2007/2008 docx files.

xlwt/xlrd reads and writes Excel format data files.

xlsxwriter creates Excel format xlsx files.

xlwings allows Python to call Excel.

csvkit is a toolkit for CSV files.

marmir converts Python [data structures] to spreadsheets.

pdfminer extracts information from PDF files.

pypdf2 is a library for merging and converting PDF pages.

Python-Markdown is a Python implementation of the lightweight markup language Markdown.

Mistune is a fast, fully-featured Markdown parser written in pure Python.

dateutil is an extension package for the standard Python datetime module, providing string date tools. The parser converts strings to datetime, while rrule generates datetime based on defined rules.

arrow is a better library for date and time handling in Python.

chronyk is a Python 3 library for parsing human-written time and dates.

delorean is a library for cleaning up time periods.

when.py provides user-friendly functionality for dates and times.

moment is a Python library similar to Moment.js for date/time handling.

pytz is a library for world time zones, using tz database time zone information [database].

BeautifulSoup is a Python-based HTML/XML parser that is simple to use and powerful, capable of parsing even buggy HTML code.

lxml is a fast, easy-to-use, and flexible library for handling HTML and XML, powerful enough to handle defective or non-standard XML.

htmlparser is the official HTML DOM tree parser, sometimes useful for command-line automated form submissions.

pyyaml is a Python version of the YAML parser.

html5lib is a standard library for parsing and serializing HTML documents and fragments.

pyquery is a jQuery-like HTML parsing library.

cssutils is a Python CSS library.

MarkupSafe is a library for safe XML or HTML/XHTML string marking.

bleach is an HTML-based whitelisting library.

xmltodict is an XML toolkit similar to JSON.

xhtml2pdf is an HTML/CSS format converter that generates PDF documents.

untangle converts XML documents into Python objects for easy access.

File Handling

Library Name and Introduction: Mimetypes is a standard library in Python that maps file names to MIME types.

imghdr is a standard library in Python that determines image types. python-magic is a library for file type recognition based on libmagic. path.py is a secondary encapsulation of the os.path module.

watchdog is a set of APIs and shell utilities for monitoring file system events.

Unipath is an object-oriented toolkit for file/directory operations. pathlib is a cross-platform, path-oriented function library (already included as a standard library in Python 3.4).

pickle/cPickle is Python’s pickle module that implements basic data serialization and deserialization. Through serialization, we can save object information running in the program to a file for permanent storage; through deserialization, we can create previously saved objects from a file.

cPickle is the C language implementation, which is faster.

ConfigParser is a standard library in Python that serves as an INI file parser.

configobj is an INI file parser. config is a hierarchical configuration written by the author of logging.

profig is a multi-format configuration conversion tool.

logging is a standard library in Python for generating and managing log files.

logbook is a replacement for logging.

Sentry is a real-time log server. Raven is the Python client for the Sentry log server.

Sphinx is a documentation generator for Python.

reStructuredText is a markup syntax and parsing tool, a component of Docutils. mkdocs is a documentation generator in Markdown format.

pycco is a simple and fast documentation generator for programming style.

pdoc is a tool for automatically generating Python library API documentation from source code comments.

Image Processing

Library Name and Introduction: PIL (Python Image Library) is a powerful image processing library based on Python, supporting a wide range of graphic file formats and built-in many image processing functions, such as image enhancement and filtering algorithms. Pillow is a fork and upgrade of the PIL image library. Matplotlib is a famous plotting library that provides a complete set of command APIs similar to MATLAB for drawing high-quality mathematical 2D graphics, suitable for interactive plotting.

brewer2mpl is a professional Python color palette toolkit that offers beautiful colors from an artistic perspective.

PyGame is a multimedia development and game development module based on Python, containing numerous game and image processing functions. Box2d is an open-source 2D physics engine used in games like Angry Birds, simulating a world where you can set gravity and add various objects with physical properties such as mass, friction, and damping.

Pymunk is an open-source physics simulation library similar to Box2d. OpenCV is currently the best open-source image/vision library, including many general algorithms for image processing and computer vision, as well as machine learning. SimpleCV is an open-source framework for computer vision, similar to OpenCV.

VTK (Visualization Toolkit) is an open-source, cross-platform graphics application library that supports parallel processing.

In 2005, it was used by the US Army Research Laboratory for real-time simulation of the Russian anti-missile vehicle ZSU23-4 under plane wave attack, with up to 2.5 million computing nodes.

cgkit is a Python Computer Graphics Kit, mainly divided into two parts:

1. Some Python modules related to 3D, such as vector, matrix, and quaternion types, RenderMan bindings, and noise functions that can be used directly in programs like Maya, Houdini, Nuke, and Blender.

2. A complete module for scene manipulation, similar to other 3D software, keeping a complete description of the scene in memory.

CGAL (Computational Geometry Algorithms Library) provides data structures and algorithms related to computational geometry, such as triangulation (2D constrained triangulation and 2D and 3D Delaunay triangulation), Voronoi diagrams (2D and 3D points, 2D weighted Voronoi diagrams, etc.), polygons (Boolean operations, offsets), polyhedra (Boolean operations), curve smoothing and applications, mesh generation (2D Delaunay mesh generation and 3D surface and volume mesh generation), geometric processing (surface mesh simplification, subdivision, and parameterization), convex hull algorithms (2D, 3D, and dD), search structures (nearest neighbor search, kd-trees, etc.), interpolation, shape analysis, fitting, and distance.

Aggdraw is an open-source image library that covers almost all 2D image operations and is very flexible to use. Pycairo is an open-source vector drawing library, a Python interface for Cairo, which provides 2D drawing in various contexts, with advanced hardware acceleration capabilities. Wand is a Python binding for the MagickWand C API.

thumbor is an intelligent imaging tool that can resize and flip images.

imgSeek searches for similar images.

python-qrcode is a pure Python QR code generator.

pyBarcode creates barcodes without requiring the PIL module.

pygram is an Instagram-like image filter.

Quads is a computer art based on quadtrees.

nude.py is a nudity detection function.

scikit-image is an image processing library within the scikit toolkit.

hmap is an image histogram tool.

bokeh is an interactive web plotting tool.

plotly is a collaborative web plotting tool using Python and Matplotlib.

vincent is a Python library for Vega.

d3py is a Python plotting library based on D3.js, and ggplot is an API-compatible library with R’s ggplot2. Kartograph.py is for drawing beautiful SVG maps in Python. pygal creates SVG charts.

pygraphviz is a Python interface for Graphviz.

FontTools is a TTF font toolkit for font software like fontforge and ttx.

Games and Multimedia

Library Name and Introduction: audiolazy is a Python toolkit for digital signal processing (DSP).

audioread is a cross-platform audio decoding library (GStreamer + Core Audio + MAD + FFmpeg).

beets is a music library manager.

dejavu is an audio fingerprinting algorithm.

Dejavu records the fingerprint information of an audio after listening to it once, allowing recognition of whether the same song is played via microphone.

django-elastic-transcoder is a Django + Amazon Elastic Transcoder.

eyeD3 is a tool for audio files, especially for MP3 files containing ID3 metadata.

id3reader is used to read metadata from MP3 files.

mutagen processes audio metadata.

pydub is for audio manipulation with a simple high-level interface.

pyechonest is an Echo Nest API client. talkbox is a Python library for speech and signal processing.

TimeSide is an open audio processing framework.

tinytag reads metadata from music files, including MP3, OGG, FLAC, and WAV files.

m3u8 is for parsing m3u8 files.

moviepy is a multi-format video editing script module, including GIF animations.

shorten.tv creates video summaries.

scikit-video is a SciPy video processing routine.

GeoDjango is a world-class geographic web framework.

geopy is a toolbox for geo-coding.

pygeoip is a pure Python GeoIP API.

GeoIP is a Python API that uses a high-precision GeoIP Legacy Database.

geojson is a GeoJSON function library. django-countries is a Django program that provides country selection, flag icons as static files, and a country geographic model.

Pygame is a Python module for game design.

Cocos2d is a 2D game framework for demos and other graphical/interactive applications based on pyglet. Cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is based on pyglet. PySDL2 is a wrapper library for SDL2.

Panda3D is a 3D game engine developed by Disney.

Written in C++, fully compatible with Python. PyOgre is a 3D rendering engine usable for games, simulations, and any 3D applications.

PyOpenGL binds OpenGL and its related APIs.

PySFML is Python bindings for SFML. RenPy is a visual novel engine.

Big Data and Scientific Computing

Library Name and Introduction: pycuda/opencl is for high-performance concurrent computing on GPUs. Pandas is a data statistics and analysis platform similar to R language, implemented in Python. Developed based on NumPy and Matplotlib, it is primarily used for data analysis and visualization, with its DataFrame structure similar to R’s data.frame, especially having its own analysis mechanism for time series data, which is quite good.

Open Mining is a web interface for business intelligence (BI) based on Pandas. blaze is a big data interface for NumPy and Pandas.

SciPy is an open-source Python algorithm library and mathematical toolkit, containing modules for optimization, linear algebra, integration, interpolation, special functions, fast Fourier transforms, signal processing and image processing, ordinary differential equation solving, and other common computations in science and engineering.

Its functionality is similar to MATLAB, Scilab, and GNU Octave.

NumPy and SciPy are often used together, and most Python machine learning libraries depend on these two modules.

ScientificPython is a collection of selected Python modules for scientific computing, including geometry (vectors, tensors, transformations, vector and tensor fields), quaternions, automatic differentiation, (linear) interpolation, polynomials, basic statistics, nonlinear least squares fitting, unit calculations, 3D display via VRML, and two Tk widgets for drawing line graphs and 3D mesh models.

It also features interfaces to netCDF, MPI, and BSPlib libraries.

NumPy is a scientific computing library that provides solutions for matrices, linear algebra, Fourier transforms, etc. Its most commonly used object is the N-dimensional array object. NumPy provides two basic objects:

ndarray (N-dimensional array object) and ufunc (universal function object).

ndarray is a multi-dimensional array that stores a single data type, while ufunc is a function that can operate on arrays.

Cvxopt is an optimization computing package that can perform linear programming, quadratic programming, semi-definite programming, and more.

Numba is a speed optimization compiler for scientific computing. pymvpa2 is a Python tool for statistical learning analysis for large datasets, providing a flexible and expandable framework.

It provides functions for classification, regression, feature selection, data import/export, visualization, etc. NetworkX is an optimization package for complex networks. zipline is a function library for trading algorithms.

PyDy is a Python library for dynamic modeling.

SymPy is a symbolic mathematics library for Python. statsmodels is a statistical modeling and econometrics library for Python.

astropy is a Python library for the astronomy community.

orange is a data mining and data visualization tool that allows for learning machine analysis through visual programming or Python scripts.

RDKit is software for cheminformatics and machine learning.

Open Babel is an open chemical toolbox.

cclib is a computational function library for chemical software packages.

Biopython is a free biological computing toolkit.

bccb is a code collection related to bioinformatics. bcbio-nextgen provides a toolkit for fully automated, high-throughput sequencing analysis.

visvis is a visualization computing module library that can visualize one-dimensional to four-dimensional data.

MapReduce is a software architecture proposed by Google for parallel computing on large datasets (greater than 1TB).

The concepts of “Map” and “Reduce,” along with their main ideas, are borrowed from functional programming languages. The MapReduce function library provides frameworks and libraries for MapReduce.

PySpark is the Python API for [Spark]. dpark is a Python clone of Spark, a MapReduce framework in Python. luigi is a tool for building complex pipelines for batch jobs. mrjob runs MapReduce jobs on [Hadoop] or Amazon Web Services.

Artificial Intelligence and Machine Learning

Library Name and Introduction: NLTK (Natural Language Toolkit) is a natural language processing toolkit for Python, released in 2001, which includes a large number of corpora and algorithms for natural language processing:

tokenization, stemming, classification, semantic analysis, etc.

Pattern is a data mining module that includes natural language processing and machine learning tools, etc.

textblob provides an API for natural language processing, breaking down NLP tasks. It is based on the NLTK and Pattern modules.

jieba is a Chinese word segmentation tool. snownlp is for processing Chinese text libraries.

loso is a Chinese word segmentation function library.

genius is a Chinese CRF base library, where CRF (Conditional Random Field) is a discriminative probabilistic model that is often used for labeling or analyzing sequential data, such as natural language text or biological sequences. Gensim is a professional topic modeling Python toolkit, useful for calculating the similarity between two documents.

LIBSVM is a simple, easy to use, and fast SVM pattern recognition and regression software package developed by Professor Lin Chih-Jen of National Taiwan University, which provides compiled executables for Windows systems and source code for modification and application on other [operating systems].

This software has relatively few parameters for SVM tuning, providing many default parameters to solve many problems.

It also provides functionality for cross-validation.

This software can solve problems such as C-SVM, ν-SVM, ε-SVR, and ν-SVR, including multi-class pattern recognition problems based on one-vs-one algorithms.

scikits.learn is a Python module for machine learning built on top of SciPy. It includes simple and efficient tools for data mining and data analysis.

It covers classification, regression, and clustering algorithms such as SVM, logistic regression, naive Bayes, random forests, k-means, etc. The code and documentation are very good, and it is widely used in many Python projects.

For example, in the familiar NLTK, there is a dedicated interface for scikit-learn classifiers, allowing the use of scikit-learn classification algorithms and training data to train classification models.

PyMC is a sampling toolkit for machine learning. scikit-learn seems to be everyone’s favorite, but some believe PyMC is more attractive.

PyMC is mainly used for Bayesian analysis. Orange is a component-based data mining and machine learning software suite that is both user-friendly and powerful, providing a fast and multifunctional visual programming front-end for browsing data analysis and visualization, containing a complete set of components for data preprocessing, and providing functionalities for data accounts, transitions, modeling, pattern evaluation, and exploration.

It focuses on data mining and can be operated using visual language or Python, with machine learning components and plugins for bioinformatics and text mining.

Milk is a machine learning toolbox that focuses on providing supervised classifiers and several effective classification analyses: SVMs (based on libsvm), K-NN, random forests, and decision trees.

It can also perform feature selection. These classifiers can be combined in various ways to form different classification systems. For unsupervised learning, it provides K-means and affinity propagation clustering algorithms.

PyMVPA (Multivariate Pattern Analysis in Python) is a Python toolkit for statistical learning analysis for large datasets, providing a flexible and expandable framework. It provides functions for classification, regression, feature selection, data import/export, visualization, etc.

NuPIC is an open-source artificial intelligence platform developed by Grok (formerly known as Numenta), which includes the company’s algorithms and software architecture.

NuPIC operates similarly to the human brain, “forgetting old patterns when new ones emerge and remembering new patterns.” Like the human brain, the CLA algorithm can adapt to new changes. Pylearn2 is a machine learning library based on Theano.

hebel is a GPU-accelerated [deep learning] Python library.

gensim is a machine learning library. pybrain is a machine learning module aimed at providing flexible, easy-to-use, and powerful machine learning algorithms.

pybrain includes neural networks, reinforcement learning (and combinations of both), unsupervised learning, and evolutionary algorithms, with neural networks as the core, and all training methods based on an instance of a neural network.

Mahout is an open-source project under the Apache Software Foundation (ASF) that provides implementations of classic algorithms in the field of scalable machine learning, aiming to help developers create intelligent applications more conveniently and quickly.

Mahout includes many implementations, including clustering, classification, recommendation filtering, and frequent itemset mining. Additionally, by using the Apache Hadoop library, Mahout can effectively scale to the cloud.

Crab is a flexible and fast recommendation engine. python-recsys is a library for entertainment system analysis and recommendation systems. vowpal_porpoise is a lightweight Python wrapper for Vowpal Wabbit.

Theano is a Python package for defining, optimizing, and simulating mathematical expression calculations, used for efficiently solving multi-dimensional array computation problems. It makes writing deep learning models easier and also provides options for training them on GPUs.

Systems and Command Line

Library Name and Introduction: threading is the standard thread library in Python, providing a higher-level thread interface.

envoy is a library for Python sub-thread functions.

sh is a mature sub-thread replacement function library. sarge is a thread encapsulation library. subprocess is a powerful tool for calling shell commands.

argparse is an essential tool for writing command-line scripts, a powerful command-line argument parsing tool. timeit calculates the runtime of code.

unp is a command-line tool for decompressing files.

eventlet is a lightweight multithreading module that uses the concept of green threads, for example, pool = eventlet.GreenPool(10000) creates a thread pool that can handle 10,000 client connections.

Similar to the Gevent thread library, Gevent is a multithreading module. pytools is a well-known general-purpose function and toolkit for Python.

SendKeys is a module for simulating keyboard and mouse operations.

pyHook is a “hook” library based on Python, mainly used for monitoring mouse and keyboard events on the current computer.

This library depends on another Python library called PyWin32, which only runs on Windows, so PyHook can only run on Windows.

pstuil is a cross-platform tool for obtaining and controlling system processes, as well as reading system CPU and memory usage information. cement is a lightweight, fully-featured command-line tool. click is a simple and elegant command-line interface.

clint is a command-line tool for Python. cliff is a command-line program framework for creating multi-level commands.

Clime can convert any module into multiple CLI command programs without any configuration.

docopt is a command-line argument parser for Python.

pycli is a command-line application that supports standard command-line parsing, logging, unit testing, and functional testing.

Gooey turns command-line programs into complete GUI applications. cookiecutter is a command-line tool for creating projects from cookiecutters (project templates).

For example, Python package projects, jQuery plugin projects.

percol adds interactive selection style to UNIX traditional pipeline commands.

rainbowstream is a smart and beautiful Twitter client terminal. Django Models is part of Django. SQLAlchemy is a Python SQL toolkit and Object-Relational Mapping.

peewee is a small ORM parser.

PonyORM provides an SQL-oriented interface for ORM. MongoEngine is a Python Object-File Mapping that uses [MongoDB].

Django MongoDB engine is a Django backend for MongoDB.

django-mongodb-engine is a Django backend. redisco is a simple model and container library that uses [Redis].

flywheel is an object mapping tool for Amazon DynamoDB.

butterdb is an ORM for Google Sheets in Python. celery is an asynchronous task queue/work based on distributed message queues.

huey is a lightweight multi-threaded task queue.

mrq is a distributed task queue using Redis & Gevent. rq is a simple work queue.

Queue is a module that can be used to implement communication between threads, allowing threads to share data, where the producer puts goods into the queue for consumers (threads) to use.

simpleq is a simple, extensible queue, based on Amazon SQS.

Psyco is a powerful performance optimization tool for Python. The magic of psyco is that it only requires two lines of code at the entrance of the code to improve performance by 40% or more, making it truly remarkable! If your customers find your program a bit slow, don’t rush to optimize the code; psyco might immediately change their opinion.

Psyco is known as Python’s JIT. fn.py is for functional programming in Python: missing functionality enjoying FP implementation. funcy is a functional programming toolkit.

Toolz is a functional programming toolkit: iterators, functions, dictionaries. CyToolz is the Cython implementation of Toolz, a high-performance functional programming toolkit. Ansible is a very simple automation platform.

SaltStack is an infrastructure automation management system.

Fabric is a simple language tool for remote execution and deployment.

Fabtools is a tool library for Fabric.

cuisine is a popular tool library for Fabric.

psutil is a cross-platform process and system utility module.

pexpect is for controlling interactive programs.

provy is an easy-to-use configuration system for Python. honcho is a Python interface for managing procfile applications.

gunnery is a multitasking execution tool for distributed systems with network interfaces.

fig is a fast, standalone development environment using Docker.

APScheduler is a lightweight but powerful online task scheduling program.

django-schedule is a Django scheduling application. doit is a task flow generation tool.

Joblib is a lightweight pipeline utility function provided by Python.

Plan is a simple tool for generating crontab files.

Spiff is a powerful workflow engine implemented in pure Python.

schedule is a Python job scheduler. TaskFlow helps simplify task execution.

ctypes is a standard library in Python for faster speed, providing an external function interface for calling C code. cffi is an external function interface for calling C code in Python, similar to ctypes but more convenient, not requiring compilation into .so before calling.

Cytoolz is a Python acceleration library. SWIG simplifies wrapping and interface generation. Cython is a static compiler for optimizing Python.

PyPy is a Python implementation of the Python interpreter.

Stackless Python is an enhanced version of Python. It allows programmers to benefit from a thread-based programming approach while avoiding the performance and complexity issues associated with traditional threads.

Stackless brings micro-threading extensions to Python, a low-overhead, lightweight convenience tool. Pyston optimizes Python performance using LLVM and modern JIT technology.

pythonlibs is an unofficial Python extension package for Windows (32/64 bit). scapy is an excellent packet processing library.

ino is an Arduino command line tool. Pyro is a Python robotics toolkit.

pluginbase is a simple and flexible plugin system for Python.

itsdangerous is a data security transmission tool. blinker is a fast signal/event dispatching system in Python.

pychievements is a framework for creating and tracking achievements.

python-patterns is a collection of design patterns in Python.

pefile is a Windows PE file parser. SIP is a tool for automatically generating Python extension modules for C and C++ libraries.

Databases

Library Name and Introduction: MySQLdb is a mature [MySQL] database module. Baresql is an SQL database package. ZODB is a native object database for Python, a K-V object graph database.

pickledb is a simple and lightweight K-V key-value store.

TinyDB is a lightweight, document-oriented database.

mysql-python is a Python toolkit for MySQL.

mysqlclient is a branch of mysql-python that supports Python 3. PyMySQL is a pure Python MySQL driver, compatible with mysql-python. mysql-connector-python is a MySQL connector from [Oracle], written in pure Python.

oursql is a MySQL connector that provides local instructions and BLOBs support.

psycopg2 is the most popular Python PostgreSQL adapter. txpostgres is an asynchronous driver for PostgreSQL based on Twisted.

queries is a psycopg2 function library for PostgreSQL.

dataset stores Python dictionary data for SQLite, MySQL, and PostgreSQL.

cassandra-python-driver is a Python driver for the open-source distributed NoSQL database system Apache Cassandra. pycassa is a simplified Python driver for Cassandra databases.

HappyBase is a friendly function library for Apache [Hbase].

PyMongo is the official client for MongoDB.

Plyvel is a fast and feature-rich Python interface for LevelDB. redis-py is a Redis client.

py2neo is a Python client (based on the RESTful interface of Neo4j). telephus is a Cassandra client based on Twisted.

txRedis is a Redis client based on Twisted.

【Networking】 Curl, the Pycurl package is a Python interface for libcurl, which is written in C.

Compared to urllib, it is much faster.

Libcurl is a client URL transfer library supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE, and LDAP. libcurl also supports HTTPS authentication, HTTP POST, HTTP PUT, FTP upload, proxies, cookies, basic authentication, FTP file resume, HTTP proxy tunneling, etc.

Requests is an open-source HTTP library written in Python based on urllib.

It is more convenient and more Pythonic than urllib.

Supports Python 3. httpie is a command-line HTTP client, a user-friendly replacement for cURL.

s3cmd is a command-line tool for managing Amazon S3 and CloudFront.

youtube-dl is a command-line program for downloading videos from YouTube.

you-get is a Python3 video download tool for downloading videos from YouTube/Youku/Niconico.

Coursera is a tool for downloading videos from coursera.org, allowing for renaming files. wikiteam is a wiki download tool.

subliminal is a command-line tool for searching and downloading subtitles. requests is an HTTP function library, more user-friendly. grequests is an asynchronous HTTP request + Gevent (a high-performance, high-concurrency function library).

urllib3 is a thread-safe HTTP connection pool that supports file post.

httplib2 is a comprehensive HTTP client function library. treq is a Python API interface for Twisted’s HTTP client.

Mininet is a popular network emulator, with APIs written in Python.

POX is an open-source software-defined networking (SDN) development platform based on Python, such as an SDN controller for OpenFlow.

Pyretic is an SDN programming language that provides powerful abstractions in network switches or emulators. SDX Platform is an implementation of IXP based on SDN, utilizing minimal networks, acne, and heat. inbox.py is a Python SMTP server. imbox is a Python version IMAP library. inbox is an open-source email toolkit.

lamson is an SMTP server. flanker is a library for email address and MIME parsing.

marrow.mailer is a high-performance, scalable email delivery framework.

django-celery-ses is a Django email backend that uses AWS SES and Celery.

modoboa is an email hosting and management platform that includes a modern and simplified Web UI.

envelopes is an email utility.

mailjet is a batch mailing tool with the mailjet API, including statistics. Talon is a Mailgun library for extracting message quotations and signatures.

mailjet is the Mailjet API implementation for batch mailing, statistics, and more. Talon is the Mailgun library to extract message quotations and signatures. pyzmail is for composing, sending, and parsing emails.

furl is a small URL parsing library. purl is a simple, clean API for manipulating URLs.

pyshorteners is a pure Python library for URL shortener editing.

short_url is for generating short URLs.

Scrapy is a fast screen capture and web scraping framework.

portia is a visual extension of Scrapy.

feedparser is a feed source interpreter. RoboBrowser is a simple Python function library for web browsing without using a web browser.

MechanicalSoup is a toolkit for automating interaction testing on websites.

Demiurge is a lightweight tool for PyQuery.

newspaper extracts newspaper news. html2text converts HTML to Markdown format text.

python-goose is an HTML content extractor.

lassie is a user-friendly web content retrieval tool.

micawber is a function library for extracting web pages via UR. sumy is a module for automatic summarization of text and HTML web pages.

Haul is a scalable image crawler.

python-readability is a readability tool. Arc90 is a fast Python interface.

opengraph is a module for parsing OpenGraphProtocol. textract extracts text from any file, including Word, PowerPoint, PDF, etc.

sanitize cleans up messy data.

AutobahnPython is a library for WebSocket and WAMP, using Twisted and Python. Websocket-for-Python is a library for WebSocket clients and servers.

SimpleXMLRPCServer is a simple XML-RPC server in the Python standard library, single-threaded.

SimpleJSONRPCServer is a function library for implementing the JSON-RPC specification.

zeroRPC is an RPC implementation based on ZeroMQ and MessagePack.

apache-libcloud is a Python interface library for all cloud services.

wifi is a set of Python libraries and command-line tools for WiFi on [Linux].

streamparse runs Python code and data in real-time streams.

It integrates with Apache Storm.

boto is the Amazon Web Services interface.

twython is the Twitter API. google-api-python-client is the Google client API.

gspread is the Python API for Google Sheets.

facebook-sdk is the Facebook platform Python SDK.

facepy is an easy-to-use Facebook Graph API. gmail is the Gmail Python interface.

django-wordpress is the WordPress model and view for Django.

【Web Frameworks】 Django is the most popular Python web framework, encouraging rapid development and following the MVC design, resulting in short development cycles. ActiveGrid provides enterprise-level Web 2.0 solutions. Karrigell is a simple web framework that includes web services, a Python script engine, and a pure Python database PyDBLite. webpy is a small and flexible web framework, simple yet powerful. CherryPy is a Python-based web application development framework. Pylons is an extremely efficient and reliable web development framework based on Python. Zope is an open-source web application server. TurboGears is a Python MVC-style web application framework. Twisted is a popular network programming library and a large web framework. Quixote is a web development framework. Flask is a lightweight web framework. Bottle is a fast, simple, and lightweight WSGI-based web framework.

Pyramid is a lightweight, fast, and stable open-source web framework.

web2py is a simple, easy-to-use full-stack web framework and platform.

web.py is a powerful, simple web framework. TurboGears is a web framework that is easy to extend.

CherryPy is a minimalist Python web framework that supports HTTP 1.1 and WSGI thread pools.

Grok is a web framework based on Zope3.

Bluebream is an open-source web application server, formerly known as Zope 3.

guava is a lightweight, high-performance Python web framework, written in C.

django-cms is an enterprise-level open-source CMS based on Django.

djedi-cms is a lightweight but powerful Django CMS plugin with inline editing and performance optimization.

FeinCMS is an advanced content management system based on Django.

Kotte is a high-level web application framework in Python, based on Pyramid. Mezzanine is a powerful, consistent, and flexible content management platform.

Opps is a Django-based CMS for high-traffic newspapers, magazines, and portals.

Plone is an open-source application server based on Zope.

Quokka is a flexible, extensible, lightweight CMS system using Flask and MongoDB.

Wagtail is a Django content management system.

Widgy is a CMS framework based on Django.

django-oscar is an open-source e-commerce framework for Django.

django-shop is a Django-based online store system.

merchant supports multiple payment processing tools.

money is an extensible currency conversion solution.

python-currencies is a currency display format.

cornice is a REST framework for Pyramid.

django-rest-framework is a powerful, flexible toolkit for easily building Web APIs.

django-tastypie creates beautiful API interfaces for Django applications.

django-formapi creates JSON APIs, HMAC authentication, and Django form validation. flask-api provides a unified browser experience based on the Django framework.

flask-restful quickly builds REST APIs with support for extensions.

flask-api-utils is an extension for Flask. falcon is a high-performance Python framework for building cloud APIs and web application backends.

eve is a REST API framework that uses Flask, MongoDB, and goodwill.

sandman is a tool that automatically generates REST APIs for existing database-driven systems. restless is a framework similar to TastyPie.

savory-pie is a function library for building REST APIs (Django and others). Jinja2 is a modern designer-friendly templating language.

Genshi is a web-aware output templating toolkit.

Mako is a high-speed, lightweight templating engine for the Python platform.

Chameleon is an HTML/XML templating engine.

It imitates ZPT and optimizes speed.

Spitfire is a fast Python compilation templating engine.

django-haystack is a Django module for searching.

elasticsearch-py is the official low-level Python client for Elasticsearch.

solrpy is a Solr client.

Whoosh is a fast, pure Python search engine library.

Feedly is a function library for building news and notification systems using Cassandra and Redis.

django-activity-stream is a Django activity stream that generates a universal activity stream from actions on your website.

Beaker is a caching and session usage web application, an independent Python script and application library.

dogpile.cache is the next-generation alternative to Beaker by its author. HermesCache is a Python caching library based on tag-based invalidation and prevention of dogpile effects.

django-cache-machine is a Django cache machine that automatically invalidates caches using ORM. django-cacheops automatically invalidates ORM caches based on granular event-driven triggers.

johnny-cache is a high-speed caching framework for Django applications.

django-viewlet is an extension for rendering template widgets with cache control.

pylibmc is an interface for libmemcached.

WTForms-JSON is an extension for processing JSON form data. Deform is a function library for generating HTML forms.

django-bootstrap3 integrates bootstrap3 with Django. django-crispy-forms is a Django application for creating elegant forms.

django-remote-forms is a Django remote forms serializer.

django-simple-spam-blocker is a simple spam blocker for Django.

django-simple-captcha is a simple and highly customizable Django application for adding CAPTCHA images. Ajenti is a server management panel.

Grappelli is a fancy skin for Django. django-suit is an alternative Django interface (for non-commercial use only).

django-xadmin is an alternative tool for the Django management panel.

flask-admin is a simple management interface framework for Flask. flower is a real-time monitoring and web management panel.

Pelican is a Markdown or ReST-based content theme generator. Supports DVCS, Disqus. AGPL.

Cactus is a static site generator for designers.

Hyde is a static site generator based on Jinja2.

Nikola is a static site and blog generator.

Tags is the simplest static site generator.

Tinkerer is a static site generator based on Sphinx.

asyncio (in Python 3.4 + is a standard library) is for asynchronous I/O, event loops, and cooperative tasks.

gevent is a networking library based on Python.

Twisted is an event-driven networking engine.

Tornado is a web framework and asynchronous networking function library.

pulsar is a Python event-driven parallel framework.

diesel is a green, event-based I/O framework.

eventlet is a WSGI-supporting asynchronous framework.

pyzmq is the Python wrapper for the 0MQ messaging library.

txZMQ is the 0MQ messaging library for Twisted. Crossbar is an open-source unified application router (WebSocket and WAMP).

wsgiref is the standard library in Python, providing a WSGI wrapper implementation in a single thread.

Werkzeug is a WSGI utility library that can be easily embedded into your own project framework.

paste is a multi-threaded, stable, and proven WSGI utility.

rocket is a multi-threaded service based on Pyramid.

netius is a fast, asynchronous WSGI server. gunicorn is a forked predecessor, partially written in C.

fapws3 is an asynchronous network server written in C. meinheld is an asynchronous WSGI server written in C.

bjoern is a fast, asynchronous WSGI server written in C.

【Security】 Permissions is a library that allows or denies user access to data or functions.

django-guardian is a Django guardian that manages permissions for each object, used for Django 1.2 +. Carteblanche manages navigation and permissions.

Authomatic is a simple and powerful authentication/authorization client.

OAuthLib is a general-purpose OAuth request signing tool.

rauth is a Python library for OAuth 1.0 and 2.0.

python-oauth2 creates OAuth clients and servers using a fully tested abstract interface.

python-social-auth is an easy-to-install social authentication mechanism.

django-oauth-toolkit is a Django OAuth toolkit. django-oauth2-provider is a Django OAuth2 toolkit.

django-allauth is a Django authentication application.

Flask-OAuthlib is an OAuth toolkit for Flask. sanction is a simple OAuth2 client.

jose is an implementation of the JSON Object Signing and Encryption (JOSE) draft specification.

python-jwt is a module for generating and validating JSON Web Tokens.

pyjwt is the JSON Web Token draft 01.

python-jws is the JSON Web Token draft 02.

PyCrypto is a cryptographic toolkit for Python.

Paramiko implements the sshv2 protocol, providing client and server functionality.

cryptography is a cryptographic development toolkit.

PyNac is a library for networking and cryptography (NaCl). hashids is a Python library for hashids.

Passlib is a library for secure password storage/hashing, at a very high level.

hashlib implements hash algorithms like md5, sha, etc., to replace the md5 and sha modules and make their APIs consistent.

It is supported by OpenSSL and supports algorithms such as: md5, sha1, sha224, sha256, sha384, sha512.

GUI

PyGtk is a GTK+ library for GUI program development based on Python.

PyQt is a QT development library for Python.

WxPython is a GUI programming framework under Python, whose message mechanism is similar to the MFC architecture, making it very simple to get started, suitable for rapid development of related applications.

Tkinter is the standard interface programming package under Python, so it is not considered a third-party library.

PySide is a cross-platform application and user interface framework for Qt, supporting the Qt v4 framework.

wxPython is a hybrid C++ library of wxWidgets.

kivy is a library for creating application GUIs that run on Windows, Linux, MAC OS X, [Android], and [iOS].

curse is for creating terminal GUI applications.

urwid is a library for creating terminal GUI application forms, supporting events and rich colors.

pyglet is a cross-platform window and multimedia library for Python.

Tkinter is the de facto standard GUI package for Python.

enaml is for creating beautiful user interfaces with syntax similar to QML.

Toga is a native GUI toolkit.

【Build Packaging】

pyenv is a simple Python version manager.

virtualenv creates isolated Python environments for installing different versions of Python simultaneously.

virtualenvwrapper is a set of extensions for virtualenv.

pew is a tool for managing multiple virtual environments.

vex runs specified virtualenv commands.

PyRun is a single-file, no-install Python version management tool.

PIP is a package and dependency management tool for Python.

easy_install is a package management system that provides a standard distribution format for Python software and libraries. It is a module that comes with a setup tool and a third-party library, designed to speed up the distribution process of Python libraries, similar to Ruby’s RubyGems.

conda is a cross-platform binary package manager.

Curdling is a command-line tool for managing Python packages.

wheel is a new standard for Python distributions, aimed at replacing eggs.

cx-Freeze is a cross-platform library for packaging into executable files.

py2exe is a Freeze script tool for Windows, converting Python scripts into standalone executables that can run on Windows.

py2app is a Freeze script tool for MAC OS X.

pyinstaller converts Python programs into standalone executable files (cross-platform).

pynsist is a tool for building Windows installers, written in Python.

dh-virtualenv builds and distributes virtualenv (Debian package format).

PyPI is the next generation Python package repository management tool.

warehouse is the next generation of Python package repository (PyPI) management tool.

devpi is a PyPI server and packaging/testing/releasing tool.

localshop is the official PyPI package mirror server that supports local (private) package uploads.

buildout creates, assembles, and deploys applications’ multiple parts, some of which may not be Python-based.

SCons is a software construction tool.

platformio is a console tool for building code for different development platforms.

bitbake is a specially designed tool for creating and deploying [embedded] Linux software packages.

fabricate automatically generates dependency packages for any programming language.

django-compressor is a Django compressor that compresses and inlines JavaScript or CSS, linking to a single cached file.

jinja-assets-compressor is a Jinja extension that compiles and compresses your resources.

webassets optimizes management of static resources with unique cache clearing.

fanstatic is a library that provides static files optimization.

fileconveyor monitors resource changes, which can be saved to CDN (Content Delivery Network) and file systems.

django-storages is a set of custom storage backends for Django.

glue is a simple command-line tool for generating CSS Sprites.

libsass-python is the Python interface for Sass (Cascading Style Sheets).

Flask-Assets integrates application resources.

【Code Debugging】

unittest is the standard library in Python for unit testing frameworks.

nose is an extension of unittest.

pytest is a mature, full-featured testing tool for Python.

mamba is the authoritative testing tool for Python, originating from BDD.

contexts is a BDD testing framework based on C#.

pyshould is a should-style testing framework based on PyHamcrest.

pyvows is a BDD-style testing framework.

Selenium is a web testing framework with Python bindings for Selenium.

splinter is an open-source tool for testing web applications.

locust is a scalable user load testing tool written in Python.

sixpack is a language-agnostic A/B testing framework.

mock is a library for simulating objects (mock objects), a library for mock testing.

responses is a utility function for mock testing.

doublex is a powerful testing framework.

freezegun is a module for testing by adjusting time.

httpretty is a tool for mocking HTTP requests.

httmock is a mock testing tool.

coverage is a code coverage measurement tool.

faker is a Python package for generating mock test data.

mixer is a tool for producing mock data for Django ORM, SQLAlchemy, Peewee, MongoEngine, Pony ORM, etc.

model_mommy is a tool for creating test random objects in Django.

ForgeryPy is an easy-to-use mock data generator.

radar generates random dates/times.

FuckIt.py tests Python code execution.

Code Analysis: pysonar2 is a Python type indexer.

pycallgraph is a tool for visualizing call graphs.

code2flow converts Python and JavaScript code into flowcharts.

LinterFlake8 is a source code module checker.

pylama is a Python and JavaScript code auditing tool.

Pylint is a source code analyzer that looks for programming errors, helps enforce a coding standard, and sniffs for some code smells. Note: Compared to PyChecker, Pylint is a higher-level Python code analysis tool that analyzes errors in Python code.

Pyflakes is a simple program for checking errors in Python source files. Pyflakes analyzes and checks various errors by parsing source files without requiring imports.

pdb is the standard library in Python, a Python debugger.

ipdb is the PDB used by IPython.

winpdb is a platform-independent GUI debugger.

pudb is a full-screen, console-based Python debugger.

pyringe is a debugger that can attach to and inject code into Python programs.

python-statsd is a client for statsd servers.

memory_profiler monitors memory usage.

profiling is an interactive Python profiler.

django-debug-toolbar is a Django debug toolbar that displays various debugging information: current requests/responses.

django-devserver is a Django debugging tool.

flask-debugtoolbar is a debugging tool for Flask.

All rivers and mountains always have feelings, can you give a thumbs up?.

Comprehensive List of Python Libraries

Leave a Comment