The Python ecosystem has always been famous for its complete range of class libraries, which is also an important reason why this language is so popular.
text processing
text processing
-
chardet: Character encoding detector, this library can detect the encoding of text, web pages, xml and other file formats
-
difflib: text difference comparison
-
ftfy: Make the program more fully support Unicode encoding
-
fuzzywuzzy: can perform fuzzy matching of strings
-
Levenshtein: Calculate various distances and string similarities
-
pangu.py: adjust the spacing between letters and numbers in Chinese, Japanese and Korean characters
-
pypinyin: Chinese pinyin conversion tool
-
shortuuid: used to generate UUID
-
simplejson: JSON encoder and decoder
-
unidecode: Unicode format operation
-
uniout: print characters without escaping
-
xpinyin: Convert Chinese characters to Pinyin
-
yfiglet-figlet: pyfiglet - Python implementation of figlet
-
flashtext: used for text search and replacement
-
esmre: speed up regular expressions
-
awesome slugify: for handling Unicode
-
python-slugify: Convert unicode to ASCII
-
unicode-slugify: can generate unicode slugs and depends on Django
-
phonenumbers: used to parse, format, store and verify phone numbers
-
PLY: lex and yacc parsing tool
-
Pygments: syntax highlighting tool
-
pyparsing: can generate universal parsers
-
python-nameparser: Decompose a person's name into several independent parts
-
python-user-agents: Browser user agent parser
-
sqlparse: SQL parser
special text processing
-
tablib: used to process tabular data
-
Marmir: Convert Python data structures into spreadsheets
-
openpyxl: library for reading and writing Excel files
-
pyexcel: A library that provides a unified API for manipulating Excel files
-
python-docx: Manipulate Word files
-
relatorio: templated OpenDocument files
-
unoconv: Convert LibreOffice/OpenOffice file formats
-
XlsxWriter: used to create Excel.xlsx files
-
xlwings: A library for calling Python from Excel
-
xlwt/xlrd: read and write data in Excel files
-
PDFMiner: a library for extracting information from PDF documents
-
PyPDF2: A library for various operations on PDF pages
-
ReportLab: Can create rich text PDF documents
-
Mistune: Markdown parser
-
Python-Markdown: There is a Markdown parser
-
Python-Markdown2: Markdown parser implemented in pure Python, faster, more accurate and scalable than Python-Markdown
-
PyYAML: YAML parser
-
csvkit: Tool for manipulating CSV
-
unp: a command line tool for unpacking archive files
HTML/XML parsing
-
BeautifulSoup: Parse HTML or XML format data
-
bleach: Whitelist-based HTML cleaning and text linking library
-
cssutils: CSS library
-
html5lib: HTML document and fragment parsing and serialization library
-
lxml: a library for processing HTML and XML
-
MarkupSafe: XML/HTML/XHTML markup safe strings
-
pyquery: a library for parsing HTML, similar to jQuery
-
requests-html: Humanized HTML parsing library
-
untangle: Convert XML documents to Python objects
-
xhtml2pdf: HTML/CSS to PDF tool
-
xmltodict: Process XML like JSON
-
htmlparser, the official version parses HTML DOM tree
File processing
-
aiofiles: asynchronous file operation library based on asyncio
-
imghdr: detect image type
-
mimetypes: Map filenames to MIME types
-
path.py: module for more convenient path operations
-
pathlib: cross-platform, object-oriented path manipulation library
-
python-magic: file type detection
-
Unipath: Manipulate files and directories in an object-oriented way
-
pickle/cPickle: implements basic data sequence and deserialization
-
watchdog: a tool for managing file system events
Configuration file processing
-
ConfigParser: ini file parser
-
configobj: ini file parser
-
profig: multi-format configuration conversion tool
-
config: hierarchical configuration module
-
python-decouple: Completely isolate setup and code
Document related
-
Sphinx: documentation generator
-
mkdocs: Markdown format document generator
-
pycco: a simple, fast, programming-style documentation generator
-
pdoc: A tool for generating documents in various formats from source code comments
-
readthedocs: an online document hosting system based on Sphinx/MkDocs
Log management
-
logging: Provides logging function
-
logbook: a replacement for the Logging library
-
Eliot: Creating logs for complex and distributed systems
-
Raven: Python client for Sentry
-
Sentry: a server that records and collects logs in real time
date and time
-
arrow: a very good date and time manipulation library
-
Chronyk: for parsing times and dates in handwritten formats
-
dateutil: extension of datetime module
-
delorean: A library that solves date processing problems in Python
-
maya: a humanized time processing library
-
moment: Python library for working with times and dates
-
pendulum: a time manipulation library with more explicit, predictable behavior than arrow
-
PyTime: for manipulating date/time via strings
-
pytz: modern and historical versions of world time zone definitions
-
when.py: perform common date and time operations
Image related
Image Processing
-
pillow: is a more easy-to-use image manipulation library
-
hmap: image histogram mapping
-
imgSeek: Tool for searching a collection of images using visual similarity
-
nude.py: Nude detection
-
pyBarcode: Generate barcodes in a Python program
-
pygram: Instagram-like image filters
-
python-qrcode: a QR code generator
-
Quads: Computer art based on quadtrees
-
scikit-image: a library for image processing
-
thumbor: a small image service
-
wand: Python version of MagickWand
-
face_recognition: Simple and easy-to-use face recognition library
OCR
-
pyocr: a wrapper for Tesseract and Cuneiform
-
pytesseract: Another wrapper for Google Tesseract OCR
-
python-tesseract: A wrapper class for Google Tesseract OCR
Network related
download
-
s3cmd: Command line tool for managing Amazon S3 and CloudFront
-
s4cmd: S3 command line tool
-
you-get: YouTube/Youku/Niconico video downloader
-
youtube-dl: Tool for downloading YouTube videos
-
Coursera: Videos can be downloaded from http://coursera.org
-
subliminal: library for searching and downloading subtitles
HTTP
-
aiohttp: Asynchronous HTTP library based on asyncio
-
requests: the most popular HTTP request library
-
grequests: requests library + gevent implements asynchronous HTTP requests
-
httplib2: HTTP client library
-
treq: HTTP client similar to requests
-
urllib3: A thread-safe HTTP library
Network visualization
-
Mininet: a popular network simulator
-
POX: A Python-based software-defined network application
-
Pyretic: Provides powerful abstractions for network switches and simulators
-
SDX Platform: SDN-based IXP implementation
-
NRU: A component-based software-defined networking framework
URL handling
-
furl: a simpler URL processing library
-
purl: a simple, immutable URL class
-
pyshorteners: a pure Python URL shortening library
-
shorturl: library for generating short URLs
Web Crawler
-
Scrapy: a fast and advanced network scraping framework
-
cola: a distributed crawler framework
-
Demiurge: PyQuery-based crawler framework
-
feedparser: feed parser
-
Grab: Site crawling framework
-
MechanicalSoup: A library for automating interactions with web sites
-
portia: Scrapy visual crawler
-
pyspider: a powerful crawler tool
-
RoboBrowser: A simple website browsing tool
Web content extraction
-
Haul: a scalable image scraping tool
-
html2text: Convert HTML to Markdown format
-
lassie: web content retrieval library
-
micawber: Web content extraction library for extracting rich content from URLs
-
newspaper: perform news extraction, article extraction and content curation
-
opengraph: module used to parse open content protocols
-
python-goose: HTML content/article extractor
-
python-readability: Python interface to the readability tool
-
sanitize: messy data adjustment
-
sumy: module for automatic summarization of text files and HTML pages
-
textract: Extract text from documents in any format
-
mechanize: web browsing tool
WebSocket
-
AutobahnPython: WebSocket & WAMP Tools
-
Crossbar: Open Source Unified Application Routing
-
django-socketio: WebSockets tools for Django
-
WebSocket-for-Python: WebSocket client and server library
RPC
-
SimpleJSONRPCServer: is an implementation of the JSON-RPC specification
-
SimpleXMLRPCServer: Simple XML-RPC server implementation
-
zeroRPC: is an RPC implementation
web framework
Full stack framework
-
Django: the most popular web framework in Python
-
Flask: a micro web framework
-
pyramid: a small and fast open source web framework
-
Bottle: A fast, small, lightweight WSGI micro-web framework
-
CherryPy: A minimalist web framework
-
TurboGears: a micro-framework that scales into a full-stack solution
-
web.py: a simple yet powerful web framework
-
web2py: a full-stack web framework
-
Tornado: a web framework and asynchronous networking library
-
sanic: asynchronous network framework
-
Karrigell: A simple web framework
-
PyDBLitewebpy: a small and flexible web framework
-
Quixote: a web development framework
-
Grok: Web framework based on Zope3
-
Bluebream: open source web application server
-
guava: lightweight, high-performance web framework
CMS
-
odoo-cms: Open source enterprise CMS
-
django-cms: open source enterprise CMS
-
djedi-cms: lightweight yet powerful Django CMS
-
FeinCMS: An advanced content management system built on Django
-
Kotti: an advanced web application framework
-
Mezzanine: a powerful and flexible content management platform
-
Opps: a CMS platform designed for magazine and newspaper websites
-
Plone: a CMS built on the open source application server Zope
-
Quokka: a flexible and scalable small CMS
-
Wagtail: A Django content management system
-
Widgy: the latest CMS framework, based on Django
Web permissions/security
-
Carteblanche: Code alignment module, which handles code navigation and permissions well
-
django-guardian: individual object permissions
-
django-rules: A small but powerful application that provides object-level permission management
-
Flask-OAuthlib: OAuth toolkit for Flask
-
django-oauth-toolkit: OAuth2 for Django users
-
django-allauth: Authentication module for Django
-
Authomatic: Simple yet powerful framework for authentication/authorization clients
business framework
-
django-oscar: An e-commerce framework for Django
-
django-shop: Django-based store system
-
Cartridge: A shopping cart application built on Mezzanine
-
shoop: an e-commerce platform based on Django
-
alipay: Alipay API
-
merchant: Django application that can accept payments from multiple payment platforms
-
money: currency library
-
python-currencies: Display currency format and its numerical value
Restful API
-
django-rest-framework: A Django-based tool for building Web APIs
-
django-tastypie: API tool for developing Django applications
-
django-formapi: Django’s form validation tool
-
flask-api: API tool developed for flask
-
flask-restful: Tool for quickly creating REST APIs for flask
-
flask-restless: RESTful APIs developed for the SQLAlchemy database model
-
flask-api-utils: handles API presentation and validation for Flask
-
eve: REST API framework driven by Flask, MongoDB, etc.
-
cornice: a REST framework for Pyramid
-
falcon: A high-performance framework for building cloud API and web app backends
-
sandman: Automatically create REST APIs for database-driven systems
-
restless: framework-agnostic REST framework
-
ripozo: Tool for quickly creating REST APIs
template engine
-
Jinja2: a modern and friendly template engine
-
Chameleon: an HTML/XML template engine
-
Genshi: used to generate web-aware results
-
Mako: super fast lightweight template
queue
-
celery: an asynchronous task queue/job queue
-
huey: small multi-threaded task queue
-
mrq: distributed worker task queue, using Redis and gevent
-
rq: Simple job queuing tool
-
simpleq: a simple queue based on Amazon SQS
search
-
django-haystack: Django modular search tool
-
elasticsearch-py: the official underlying Python client for Elasticsearch
-
elasticsearch-dsl-py: The official high-level Python client for Elasticsearch
-
solrpy: Python client for solr
-
Whoosh: A fast search engine written in pure Python
news feed
-
django-activity-stream: Generate generic activity streams from site actions
-
Stream-Framework: Create dynamic messaging and notification systems using Cassandra and Redis
Resource management
-
django-compressor: Compress linked and inline JavaScript or CSS into a single cache file
-
django-storages: A collection of tools for storage backends for Django
-
fanstatic: Package, optimize and provide static file dependencies as Python packages
-
File Conveyor: Used to discover and synchronize files to CDNs, S3 and FTP
-
Flask-Assets: Integrate web resources into Flask app
-
jinja-assets-compressor: used to compile and compress resources
-
webassets: Packaging, optimizing and managing static resources to generate unique cache URLs
cache
-
Beaker: a library for caching sessions
-
django-cache-machine: Automatic caching and invalidation tool
-
django-cacheops: ORM with automatic granular event-driven invalidation
-
django-viewlet: rendering templates and additional cache control features
-
dogpile.cache: a next-generation replacement for Beaker
-
HermesCache: caching library with tag-based invalidation and dogpile effect protection
-
johnny-cache: Django application caching framework
-
pylibmc: libmemcached interface encapsulation
form
-
Deform: HTML form generation library
-
django-bootstrap3: Django integrated with Bootstrap3
-
django-crispy-forms: Create beautiful forms in a very elegant and DRY (Don't repeat yourself) way
-
django-remote-forms: A platform-independent Django form serialization tool
-
WTForms: a flexible form validation and rendering library
-
WTForms-JSON: WTForms extension for processing JSON data
data verification
-
Cerberus: mapping validator
-
colander: A system for validating and deserializing data obtained from XML, JSON, HTML forms and serialized data
-
kmatch: A tool for matching/validating/filtering dictionaries
-
schema: A library for validating Python data structures
-
Schematics: for data structure validation
-
valideer: lightweight data validation and adaptation library
-
voluptuous: Data verification library, mainly used to verify JSON, YAML and other data passed into Python
-
django-celery-ses: email backend with AWS SES and Celery
-
envelopes: a human-friendly email library
-
flanker: an email address and Mime parsing library
-
imbox: IMAP library
-
inbox.py: SMTP server
-
inbox: an open source email toolbox
-
lamson: Python-style SMTP application server
-
mailjet: Provides functions such as batch email sending, statistics, etc.
-
marrow.mailer: a high-performance scalable email distribution framework
-
modoboa: Email hosting and management platform
-
pyzmail: Create, send and parse emails
-
Talon: used to extract information and signatures
-
django-simple-captcha: A simple, highly customizable Django application
-
django-simple-spam-blocker: A simple spam blocking tool for Django
URL
-
webargs: a library for parsing HTTP request parameters
-
short_url: short URL generation
globalization
-
Babel: an internationalization library for Python
-
Korean: A Korean lexicon library
Admin panel
-
Ajenti: An Admin Panel Worth Having
-
django-suit: A replacement for the Django admin interface
-
django-xadmin: A replacement for Django admin
-
flask-admin: A simple and extensible admin interface framework for Flask
-
flower: A tool for real-time monitoring of Celery clusters and providing a web management interface
-
Grappelli: A beautiful skin for the Django admin interface
-
Wooey: Can create web user interfaces for Python scripts
static site generation
-
Pelican: Process content via Markdown or ReST, use Jinja2 for themes
-
Cactus: Static site generator designed for professional designers
-
Hyde: static site generator based on Jinja2
-
Nikola: static website and blog generator
-
Tinkerer: a blogging engine/static site generator
-
Lektor: an easy-to-use static CMS and blogging engine
-
Tags: the simplest static website generator
WSGI server
-
gunicorn: WSGI tool written partly in C
-
uwsgi: used to build hosting services
-
bjoern: async is very fast
-
fapws3: asynchronous, written in C language
-
meinheld: asynchronous server
-
netius: asynchronous, very fast
-
paste: multi-threaded, stable, proven
-
rocket: multi-threaded
-
waitress: multi-threading
-
Werkzeug: a WSGI tool library
ORM
-
Django Models: an important component of Django
-
SQLAlchemy: SQL tool and object-relational mapping tool
-
Peewee: A small ORM
-
PonyORM: Provides a generator-oriented SQL ORM
-
python-sql: Python-style SQL queries
-
django-mongodb-engine: Django MongoDB backend
-
PynamoDB: The backend for Amazon DynamoDB
-
flywheel: an object mapping tool for Amazon DynamoDB
-
MongoEngine: Object document mapping tool for MongoDB
-
hot-redis: backend for Redis
-
redis: Provides simple models and containers that can persist in Redis
-
butterdb: Python ORM for Google Drive spreadsheets
geographical location
-
GeoDjango: a world-class geographic web framework
-
GeoIP: API for the MaxMind GeoIP Legacy database
-
geojson: Python tool for GeoJSON
-
geopy: address encoding toolbox
-
pygeoip: Pure Python GeoIP API
-
django-countries: Provides country selection functionality for tables, flag icon static files, and country fields in models
system
process
-
envoy: a more user-friendly module than the subprocess module
-
sarge: Another encapsulation of the subprocess module
-
sh: subprocess replacement library
-
subprocess: an artifact for calling shell commands
Concurrency/Parallel
-
multiprocessing: process-based "thread" interface
-
threading: higher-level thread interface
-
eventlet: an asynchronous framework supporting WSGI
-
gevent: Python network library based on coroutines
-
Tomorrow: a library for generating asynchronous code
-
uvloop: A library for ultra-fast asyncio event loop implementation on top of libuv
Database related
Database implemented in Python
-
pickleDB: Simple lightweight key-value storage database
-
PipelineDB: Streaming SQL Database
-
TinyDB: a tiny document-oriented database
-
ZODB: Key-value and object graph database
Database driven
-
aiomysql: asynchronous MySQL database operation library based on asyncio
-
mysql-python: MySQL database connector
-
mysqlclient: mysql-python branch
-
oursql: a better MySQL connector
-
PyMySQL: Pure Python MySQL driver
-
psycopg2: The most popular PostgreSQL adapter
-
queries: encapsulation of the psycopg2 library
-
txpostgres: Twisted-based asynchronous PostgreSQL driver
-
apsw: SQLite wrapper
-
dataset: stores Python dictionaries in the database
-
pymssql: A simple Microsoft SQL Server database interface
-
cassandra-python-driver: Python driver for Cassandra
-
HappyBase: A library designed for Apache HBase
-
Plyvel: a fast and feature-rich interface library for LevelDB
-
py2neo: encapsulated client for Neo4j restful interface
-
pycassa: Python Thrift driver for Cassandra
-
PyMongo: The official Python client for MongoDB
-
redis-py: Python client for Redis
-
telephus: Cassandra client based on Twisted
-
txRedis: Redis client based on Twisted
Safety
OAuth
-
OAuthLib: an OAuth request-signature library
-
python-oauth2: fully tested abstract interface
-
python-social-auth: Set up a simple social authentication method
-
rauth: Python library for OAuth 1.0/a, 2.0, and Ofly
-
sanction: Super simple OAuth2 client implementation
password
-
cryptography: Provides basic cryptography content and methods
-
hashids: Implementing hashids in Python
-
Paramiko: Provides ssh client and server functions
-
Passlib: Secure password storage/hashing library
-
PyCrypto: Cryptozoology Toolbox
-
PyNacl: Networking and cryptography library
other
-
jose: Implementation of JavaScript Object Signing and Encryption Draft
-
PyJWT: JSON Web Token
-
python-jws: JSON Web Signature
-
python-jwt: Module for generating and validating JSON web tokens
-
Permissions: Allow or deny user access to data or functions
AI
natural language processing
-
NLTK: Advanced tools for building programs that process human language data
-
jieba: Chinese word segmentation tool
-
langid.py: independent language recognition system
-
SnowNLP: a library for processing Chinese text
-
TextBlob: Natural Language Processing Tool
-
TextGrocery: A simple and efficient short text classification tool
-
thulac: a Chinese lexical analysis toolkit developed and launched by the Natural Language Processing and Social Humanities Computing Laboratory of Tsinghua University
-
loso: Chinese word segmentation function library
computer vision
-
OpenCV: Open source computer vision library
-
pyocr: Wrapping library for Tesseract and Cuneiform
-
pytesseract: Google Tesseract OCR packaging library
-
SimpleCV: an open source framework for creating computer vision applications
Machine Learning/Deep Learning
-
Caffe: Python interface to Caffe
-
Caffe2: A lightweight, modular, and scalable deep learning framework
-
Crab: a flexible and fast recommendation engine
-
gensim: Humanized topic modeling library
-
hebel: deep learning library
-
keras: neural network
-
MXNet: an efficient and flexible deep learning framework
-
NuPIC: Numenta Platform for Intelligent Computing
-
pattern: network mining module
-
PyBrain: Machine Learning Library
-
pydeep: deep learning library
-
Pylearn2: A machine learning library based on Theano
-
python-recsys: library used to implement recommendation systems
-
Pytorch: A deep learning framework with tensors and dynamic neural networks
-
scikit-learn: Machine learning module built on SciPy
-
skflow: a simplified interface to TensorFlow
-
TensorFlow: the most popular deep learning framework open sourced by Google
-
Theano: a fast numerical computation library
-
vowpalporpoise: lightweight Vowpal Wabbit package
-
Milk: Machine Learning Toolbox
-
PyMVPA (Multivariate Pattern Analysis in Python): A Python toolkit that provides statistical learning analysis for large data sets. It provides a flexible and extensible framework.
Scientific Computing and Data Analysis
data processing
-
astropy: astronomy-related library
-
bcbio-nextgen: Provides best-practice processing workflows for fully automated high-throughput sequencing analysis
-
bccb: bioanalysis
-
Biopython: a set of free tools for biological computing
-
blaze: A big data interface for NumPy and Pandas
-
cclib: a library for parsing and interpreting output from computational chemistry packages
-
NetworkX: High-performance tools designed for complex networks
-
Neupy: execute and test a variety of different artificial neural network algorithms
-
Numba: Python for data science
-
NumPy: a basic package for scientific computing
-
Open Babel: used to describe a variety of chemical data
-
Open Mining: Mining business intelligence using Python
-
orange: Perform data mining, data visualization, analytics and machine learning
-
Pandas: data structures and data analysis tools
-
PyDy: Used to aid the dynamic motion modeling workflow
-
PyMC: Markov Chain Monte Carlo Sampling Tool
-
RDKit: cheminformatics and machine learning software
-
SciPy: open source software for math, science, and engineering
-
statsmodels: statistical modeling and econometrics
-
SymPy: a library for symbolic mathematics
-
zipline: algorithmic trading library
-
Bayesian-belief-networks: An elegant Bayesian belief network framework
-
ScientificPython: for scientific computing
-
visvis: Visual computing module library
data visualization
-
matplotlib: the most popular Python plotting library
-
bokeh: Make interactive web drawings
-
ggplot: Python version of ggplot2
-
plotly: a web plotting library based on matplotlib
-
pyecharts: Data visualization library based on Baidu Echarts
-
pygal: SVG chart creation tool
-
pygraphviz: Python implementation of Graphviz
-
PyQtGraph: interactive real-time image drawing component
-
SnakeViz: Browser-based module output viewing tool
-
vincent: Conversion tool for converting Python to Vega syntax
-
VisPy: a high-performance scientific visualization tool based on OpenGL
GUI and game development
GUI
-
curses: built-in ncurses wrapper for creating terminal graphical user interfaces
-
enaml: Create beautiful user interfaces
-
kivy: library for creating user interactive applications
-
pyglet: cross-platform window and multimedia library
-
PyQt: Cross-platform user interface framework
-
PySide: Cross-platform user interface framework Qt
-
Tkinter: GUI standard library
-
Toga: A GUI toolkit native to the operating system
-
urwid: library for creating terminal GUI applications
-
wxPython: is a mixture of the wxWidgets C++ class library and the Python language
-
PyGObject: Python implementation of GLib/GObject/GIO/GTK+ (GTK+3)
-
Flexx: A tool set for creating GUI programs that uses web technology to display the interface
-
PyGtk: GUI program development library
-
turtle: Python drawing tool
game development
-
Cocos2d: Tools for developing 2D games
-
Panda3D: 3D game engine
-
Pygame: the most popular module for writing games
-
PyOgre: used to develop games and simulation programs
-
PyOpenGL: Python bindings for OpenGL and its related APIs
-
PySDL2: A wrapper for the SDL2 library
-
RenPy: a visual novel engine
-
PySFML: visual novel engine
Audio and video
Audio
-
audiolazy: digital signal processing package
-
audioread: cross library audio decoding
-
beets: music library management tool
-
dejavu: audio fingerprint extraction and identification
-
django-elastic-transcoder:Django + Amazon Elastic Transcoder
-
eyeD3: Tools for manipulating audio files
-
id3reader: used to read MP3 metadata
-
m3u8: module used to parse m3u8 files
-
mutagen: used to process audio metadata
-
pydub: Manipulate audio files
-
pyechonest: Python client for the Echo Nest API
-
talkbox: used to process speech/signals
-
TimeSide: open source web audio processing framework
-
tinytag: library for reading music metadata from MP3, OGG, FLAC and Wave files
-
mingus: advanced music theory and score package
video
-
moviepy: a script-based video editing module
-
scikit-video: SciPy video processing common program
-
shorten.tv: video summary
Test related
testing framework
-
unittest: unit testing framework
-
nose: extends the functionality of unittest
-
contexts: BDD framework
-
hypothesis: A testing library based on advanced Quickcheck style features
-
mamba: the ultimate testing tool for Python
-
PyAutoGUI: PyAutoGUI is a humanized cross-platform GUI automatic testing module
-
pyshould: Test module based on PyHamcrest
-
pytest: a mature, full-featured testing tool
-
green: clean and colorful testing tools
-
pyvows: BDD-style testing tool
-
Robot Framework: Universal automated testing framework
Web testing
-
Selenium: Python implementation of Selenium WebDriver
-
locust: a scalable user stress testing tool
-
sixpack: A language-agnostic A/B testing framework
-
splinter: open source web application testing tool
Mock test
-
mock: library for fake test data
-
doublex: a powerful doubles testing framework
-
freezegun: date forgery module
-
httmock: library for fake requests
-
httpretty: HTTP request mock tool
-
responses: library for forging requests requests
-
VCR.py: Record and replay HTTP interactions in tests
object factory
-
factoryboy: Test firmware replacement library
-
mixer: Another alternative library for testing firmware
-
modelmommy: Create random firmware for Django tests
code coverage
-
coverage: code coverage measurement
-
Codecov: Code Coverage Testing Tool
dummy data
-
faker: used to generate fake data
-
fake2db: fake database generator
-
radar: Generate random date/time
-
FuckIt.py: Use state-of-the-art techniques to ensure that Python code continues to run regardless of whether it is correct or incorrect
code tools
code analysis
-
coala: a language-independent and easily extensible code analysis application
-
code2flow: Convert Python and JavaScript code into flowcharts
-
pycallgraph: can visualize the process (call graph) of Python applications
-
pysonar2: type inference and retrieval tool
Lint tools
-
Flake8: Modular source code inspection tool
-
Pylint: a fully customizable source code analyzer
-
YAPF: Google’s Python code formatting tool
-
pylama: Code review tool for Python and JavaScript
Code formatting
-
autopep8: Automatically format Python code to conform to the PEP8 specification
-
black: A committed Python code formatter
debugger
-
ipdb: pdb enabled in IPython
-
pudb: Console-based Python debugger
-
pyringe: a debugger that can attach and inject code into a process
-
wdb: Web debugger working over WebSockets
-
winpdb: Python debugger with graphical user interface
-
django-debug-toolbar: Display various debugging information for Django
-
django-devserver: A replacement for the Django runtime server
-
flask-debugtoolbar:django-debug-toolbar 的 flask 版
Performance analysis
-
lineprofiler: line-by-line performance analysis tool
-
Memory Profiler: Monitor memory usage of Python code
-
profiling: Interactive Python performance profiling tool
-
pyelftools: Parse and analyze ELF files and DWARF debugging information
-
python-statsd: Python client for statsd server
log
-
logging: Provides logging functionality for Python
-
logbook: a replacement for the Logging library
-
Eliot: Creating logs for complex and distributed systems
-
Raven: Python implementation of Sentry
-
Sentry: a server that records and collects logs in real time
continuous integration
-
Travis CI: a popular continuous integration tool
-
CircleCI: a continuous integration tool
-
Vexor CI: Tools for continuous integration for private apps
-
Wercker: Based on the Docker platform, used to build and deploy microservices
Code quality
-
Codacy: Automated code review
-
QuantifiedCode: a data-driven, automated, continuous code review tool
DevOps
-
Ansible: A very simple IT automation platform
-
SaltStack: Infrastructure Automation and Management System
-
OpenStack: Open source software for building private and public clouds
-
Docker Compose: a rapid decoupled development environment based on Docker
-
Fabric: Simple tool for remote execution and deployment
-
cuisine: Provides a series of advanced functions for Fabric
-
Fabtools: Tools for writing Fabric files
-
gitapi: A pure Python API for Git
-
hgapi: Pure Python API for Mercurial
-
honcho: used to manage Procfile-based applications
-
pexpect: Control interactive programs in a pseudo terminal
-
psutil: cross-platform process and system tools module
-
supervisor: UNIX process control system
Task scheduling
-
APScheduler: lightweight but powerful in-process task scheduling tool
-
django-schedule: A Django scheduling application
-
doit: task execution and build tool
-
gunnery: a multi-purpose task execution tool for distributed systems
-
Joblib: a tool that provides lightweight job pipelines
-
Plan: a better tool for writing crontab files
-
schedule: Humanized Python task scheduling library
-
Spiff: a workflow engine implemented in pure Python
-
TaskFlow: a library that facilitates task execution
-
AirFlow: is a workflow distribution management system
high performance
-
Cython: an optimizing static compiler for Python
-
PeachPy: x86-64 assembler embedded in Python
-
PyPy: Python interpreter implemented in Python
-
Pyston: A Python implementation built using LLVM and modern JIT techniques
-
Stackless Python: An enhanced version of Python
Windows environment
-
Python(x,y): A Python distribution for scientific applications
-
pythonlibs: Unofficial Python extension binary package for Windows platforms
-
PythonNet: an integrated environment for Python and the .NET common language runtime
-
PyWin32: Python extension for Windows
-
WinPython: Portable development environment under Windows 7/8 system
Hardware related
-
ino: command line tool for operating Arduino
-
Pyro: Python Robot Programming Library
-
PyUserInput: cross-platform module for controlling mouse and keyboard
-
scapy: library for manipulating packets
-
wifi: used to operate WiFi on Linux platform
-
Pingo: Provides a unified API for devices like Raspberry Pi, pcDuino, Intel Galileo, etc.
Environment and package management
environmental management
-
p: A very simple interactive Python version management tool
-
pyenv: Simple Python version management tool
-
Vex: A tool that can execute commands in a virtual environment
-
virtualenv: Tool for creating independent Python environments
-
virtualenvwrapper: a set of extensions for virtualenv
-
pew: A set of tools for managing multiple virtual environments
-
PyRun: Python version management tool that requires no installation
Package management
-
pip: package and dependency management tool
-
pip-tools: A set of tools to keep Python package dependencies updated
-
pipenv: the officially recommended new generation package management tool
-
conda: cross-platform binary package management tool
-
Curdling: A command-line tool for managing Python packages
-
wheel: the new standard for Python distribution
-
Pdm: a new generation of package management tools
-
easy_install: software package management system
Package warehouse
-
warehouse: the next generation of PyPI
-
bandersnatch: PyPI mirror tool provided by PyPA
-
devpi: PyPI services and packaging/testing/distribution tools
-
localshop: local PyPI service
-
PyPI: a new generation of Python package library management tool
Distribute and build
software distribution
-
PyInstaller: Convert Python programs into independent executable files
-
dh-virtualenv: Build and distribute the virtualenv virtual environment as a Debian package
-
Nuitka: Compile scripts, modules, and packages into executable files or extension modules
-
py2app: Turn Python scripts into standalone packages
-
py2exe: Turn Python scripts into standalone packages
-
pynsist: Tool for creating Windows installers
-
cx-Freeze: a cross-platform library for packaging into executable files
Construct
-
buildout: a build system
-
BitBake: Build Tool for Embedded Linux
-
fabricate: a build tool that automatically finds dependencies
-
PlatformIO: Multi-platform command line build tool
-
PyBuilder: a continuous build tool implemented in pure Python
-
SCons: software building tools
interactive interpreter
-
IPython: a feature-rich tool
-
bpython: A rich interface Python parser
-
ptpython: High-level interactive Python parser
Command line related
Command line tools
-
asciimatics: cross-platform, full-screen terminal library
-
cement: Python’s command-line programming framework
-
click: A package for creating beautiful command line interfaces through combinations
-
cliff: a framework for creating command line programs
-
clint: Python command line program tool
-
colorama: cross-platform colored terminal text
-
docopt: Python-style command line argument parser
-
Gooey: Turn a command line program into a GUI program
-
python-prompt-toolkit: library for building powerful interactive command line programs
-
python-fire: a library produced by Google for building command line interfaces
-
Pythonpy: execute any Python instruction directly from the command line
-
Clime: A CLI command program that can convert any module into multiple
-
docopt: Python command line argument parser
-
pycli: command line application
-
rainbowstream: Twitter client terminal
-
argparse: tool for writing command line scripts
-
pyHook: A Python-based “hook” library
-
pstuil: a cross-platform process library that facilitates access and control of the system
Command line advanced tools
-
aws-cli: Common command line interface for Amazon Web Services
-
bashplotlib: plotting in the terminal
-
caniusepython3: Determine which project prevents perfect porting of code to Python3
-
cookiecutter: A command line tool for creating projects from cookiecutters
-
doitlive: Tool for live presentations in the terminal
-
pyftpdlib: Extremely fast and extensible Python FTP service library
-
howdoi: Get instant answers to your programming questions via the command line
-
httpie: Command line HTTP client
-
PathPicker: Pick files from bash output
-
percol: Adding interactive selection capabilities to the UNIX shell's traditional pipe concept
-
SAWS: an enhanced version of the AWS command line
-
thefuck: Fix previous command line instructions
-
mycli: MySQL command line client
-
pgcli: Postgres command line tool
-
try: a simple command line tool for trying out python libraries
third party
API
-
apache-libcloud: Python library designed for various clouds
-
boto: Python interface to Amazon Web Services
-
django-wordpress: WordPress combined with Django
-
facebook-sdk: Python SDK for the Facebook platform
-
facepy:Facebook's Graph API
-
gmail: Python interface to Gmail
-
google-api-python-client: Google APIs client library for Python
-
gspread: Python API for Google Spreadsheets
-
twython: A wrapper for the Twitter API
foreign function interface
-
cffi: Foreign function interface used to call C code
-
ctypes: Another foreign function interface for calling C code
-
PyCUDA: wrapper for Nvidia CUDA API
-
SWIG: Simplified Encapsulation and Interface Generator
other
MapReduce
-
dpark: Python version of Spark
-
dumbo: allows people to easily write and run Hadoop programs
-
luigi: building complex pipelines for batch jobs
-
mrjob: Run MapReduce jobs on Hadoop or Amazon Web Services
-
PySpark:Spark's Python API
-
streamparse: Run Python code against streams of fact data
functional programming
-
CyToolz: Cython implementation of Toolz
-
fn.py: Functional programming in Python
-
funcy: cool and practical functional tools
-
Toolz: A set of functional programming tools for iterators, functions and dictionaries
compatibility
-
Python-Future: The missing compatibility layer between Python 2 and Python 3
-
Python-Modernize: Modernize Python code for eventual migration to Python 3
-
Six: Compatibility Tool for Python 2 and 3
Editor plugin
-
Elpy: Emacs Python development environment
-
SublimeJEDI: A Sublime Text plug-in for using the auto-completion library Jedi
-
Anaconda: Anaconda turns Sublime Text 3 into a full-featured Python IDE
-
YouCompleteMe: Introducing a Jedi-based Python auto-completion engine
-
Jedi-vim: binding Vim and Jedi autocompletion library
-
Python-mode: Turn Vim into a Python IDE
-
PTVS: Python Tools for Visual Studio
Automated chat tool
-
Errbot: Simple and popular chatbot tool
financial data
-
Tushare: an open source tool that can provide free financial data on stocks, funds, futures, Hong Kong stocks, etc.
-
Ta-Lib: Financial data technical analysis library
-
AkSHare: A great free financial data platform
Algorithms and Design Patterns
-
algorithms: a Python algorithm module
-
python-patterns: A collection of Python design patterns
-
sortedcontainers: SortedList, SortedDict and SortedSet types
Miscellaneous
-
blinker: A fast in-process signal/event dispatch system for Python
-
itsdangerous: a series of auxiliary tools used to transfer trusted data into untrusted environments
-
pluginbase: a simple but flexible Python plugin system
-
Pychievements: A Python framework for creating and tracking achievements
-
Tryton: A universal business framework