Python resource encyclopedia Chinese version
awesome-python is a list of Python resources initiated and maintained by vinta, including: web framework, web crawler, web content extraction, template engine, database, data visualization, image processing, text processing, natural language processing, machine learning, logging, code analysis wait. It is maintained and updated by the "Open Source Outpost" and "Python Developer" WeChat official account teams.
Participants in this project
Maintainers: "Open Source Outpost" and "Python Developer" WeChat official account team. "Open Source Outpost" will regularly share the latest, interesting and popular open source projects in the Zhihu column. Each project has a detailed introduction and examples. Portal: https://www.zhihu.com/column/c_1317124962785062912
Contributors: Tang Youhua, qtvspa, Ai Lingfeng, Namco, Daetalus, Huang Limin, atupal, rainbow, wood lbj, beyondwu, cissoid, Li Guangsheng, polyval, Bingbin, Zhao Yeyu, л stalgic, shuoen, strongit, yuukilp, chenjiandongx, autopenguin, visonforcoding, Super Saiyan, Since-future, knktc, zhucebuliaopx, wardseptember, vmp65l3, JiaxingZhao, zhtyyx, Lynn Cao, River, You
Note: The list is not ranked and will be updated from time to time.
Resource list
environmental management
Tools for managing Python versions and environments
- p: A very simple interactive Python version management tool.
- pyenv: A simple Python version management tool.
- Vex: Can execute commands in a virtual environment.
- virtualenv: A tool for creating independent Python environments.
- virtualenvwrapper: A set of extensions for virtualenv.
- buildout: Use declarative configuration management after isolation environment initialization.
Package management
Tools for managing packages and dependencies.
- pip: Python package and dependency management tool.
- pip-tools: A set of tools to ensure that Python package dependencies are updated.
- PyPI: Python’s official third-party package software repository.
- pipenv: a new generation of package management tool officially recommended by Python.
- poetry: a package management tool that can completely replace setup.py.
- conda: Cross-platform Python binary package management tool.
- Curdling: A command-line tool for managing Python packages.
- wheel: A new standard for Python distribution, intended to replace eggs.
Package warehouse
Local PyPI repository service and proxy.
- warehouse: the next generation of PyPI.
- bandersnatch: PyPI mirror tool provided by PyPA.
- devpi: PyPI service and packaging/testing/distribution tools.
- localshop: local PyPI service (customized package and automatically mirrored PyPI).
distribution
Packaged as an executable file for distribution.
- PyInstaller: Convert Python programs into independent executable files (cross-platform).
- cx_Freeze: Convert a python program into an executable file with a dynamic link library.
- dh-virtualenv: Build and publish 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 (Mac OS X).
- py2exe: Turn Python scripts into standalone packages (Windows).
- pynsist: A tool for creating Windows installers that package Python itself in the installer.
- pyarmor: A tool for encrypting python scripts. It can also bind encrypted scripts to firmware or set the validity period of encrypted scripts.
- shiv: A command line tool that can be used to build completely standalone zip applications (the kind described in PEP 441), including all dependencies.
Build tools
Compile source code into software.
- buildout: A build system for creating, assembling and deploying applications from multiple components.
- BitBake: A make-like build tool for embedded Linux.
- fabricate: A build tool that automatically finds dependencies for any language.
- PlatformIO: Multi-platform command line build tool.
- PyBuilder: A continuous build tool implemented in pure Python.
- SCons: Software construction tools.
interactive parser
Interactive Python parser.
- IPython: Feature-rich tool for using interactive Python very efficiently.
- bpython: A Python parser with a rich interface.
- ptpython: High-level interactive Python parser, built on top of python-prompt-toolkit.
- Jupyter Notebook (IPython): A rich toolkit that allows you to maximize your interactive use of Python.
document
File management and MIME (Multipurpose Internet Mail Extensions) type detection.
- aiofiles: Based on asyncio, provides asynchronous file operations.
- imghdr: (Python standard library) Detect image type.
- mimetypes: (Python standard library) Maps filenames to MIME types.
- path.py: module that encapsulates os.path.
- pathlib: (Python3.4+ standard library) cross-platform, object-oriented path operation library.
- python-magic: Python interface of the third-party library libmagic for file type detection.
- Unipath: Manipulate files and directories in an object-oriented manner.
- watchdog: API and shell tool for managing file system events.
- PyFilesystem2: File system abstraction layer for Python.
date and time
Class library for manipulating dates and times.
- arrow: A better Python date and time manipulation library.
- Chronyk: A Python 3 library for parsing handwritten times and dates.
- dateutil: An extension to the Python datetime module.
- delorean: A library that solves tough problems with date processing in Python.
- maya: a human-friendly time processing library.
- pendulum: A time manipulation library with more explicit, predictable behavior than arrow.
- PyTime: A simple and easy-to-use Python module for manipulating dates/times with strings.
- pytz: Modern and historical versions of world time zone definitions. Bringing time zone databases to Python.
- when.py: Provides user-friendly functions to help users perform common date and time operations.
- dateutil: An extension of the Python standard package datetime.
- moment: A library for working with dates/times, inspired by Moment.js.
- pytz: supports cross-platform time zone calculations and introduces tz database into Python.
text processing
Library for parsing and manipulating text.
- Universal
- chardet: Character encoding detector, compatible with Python 2 and Python 3.
- difflib: (Python standard library) helps us perform differential comparisons.
- ftfy: Make Unicode text more complete and coherent.
- thefuzz: fuzzy string matching.
- Levenshtein: Quickly calculate edit distance and string similarity.
- pangu.py: Add spaces between Chinese, Japanese and Korean characters and numeric letters.
- pypinyin: Python version of Chinese pinyin conversion tool.
- shortuuid: A generator library for generating concise, clear, URL-safe UUIDs.
- simplejson: JSON encoder and decoder for Python.
- unidecode: ASCII converted form of Unicode text.
- uniout: Print readable characters instead of escaped strings.
- xpinyin: A library for converting Chinese characters to pinyin.
- pyfiglet: Python implementation of figlet.
- flashtext: An efficient text search and replacement library.
- textdistance: supports more than 30 algorithms to calculate the distance between sequences.
- Slug-ification
- awesome-slugify: A Python slugification library that preserves Unicode.
- python-slugify: Python slugification library that can convert unicode to ASCII.
- unicode-slugify: A slug tool that can generate unicode slugs and requires Django.
- parser
- phonenumbers: Parse, format, store, and verify phone numbers.
- python-phonenumbers: Parse, format, store, and verify international phone numbers.
- PLY: Python implementation of the lex and yacc parsing tools.
- Pygments: A universal syntax highlighting tool.
- pyparsing: A framework for generating general-purpose parsers.
- python-nameparser: Decompose a person's name into several independent parts.
- python-user-agents: Browser user agent parser.
- sqlparse: A validation-free SQL parser.
Special text format processing
Libraries for parsing and manipulating special text formats.
- Universal
- tablib: A module for processing tabular data.
- Office
- Marmir: Convert input Python data structures into spreadsheets.
- openpyxl: A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
- pyexcel: A library that provides a unified API for reading, writing, and operating Excel files.
- python-docx: Read, query and modify Microsoft Word 2007/2008 docx files.
- python-pptx: Python library that can be used to create and modify ppt files.
- relatorio: templated OpenDocument files.
- unoconv: Convert between any file formats supported by LibreOffice/OpenOffice.
- XlsxWriter: A Python module for creating Excel .xlsx files.
- xlwings: A library that makes it easy to call Python from Excel (and vice versa), based on the BSD license.
- xlwt/xlrd: Read and write data and format information of Excel files.
- docxtpl: Edit docx documents through jinja2 template.
- PDF
- PDFMiner: A tool for extracting information from PDF documents.
- PyPDF2: A library that can split, merge and convert PDF pages.
- ReportLab: Quickly create rich text PDF documents.
- Markdown
- Mistune: A fast and full-featured Markdown parser implemented in pure Python.
- Python-Markdown: A Python implementation of John Gruber's Markdown.
- Python-Markdown2: A Markdown parser implemented in pure Python, which is faster, more accurate and scalable than Python-Markdown.
- YAML
- PyYAML: Python version of the YAML parser.
- CSV
- csvkit: Tools for converting and manipulating CSV.
- Archive
- unp: A command line tool used to facilitate unpacking archive files.
natural language processing
A library for processing human language.
- NLTK: An advanced platform for building Python programs that process human language data.
- gensim: A human-friendly topic modeling library.
- jieba: Chinese word segmentation tool.
- langid.py: independent language recognition system.
- Pattern: Python network information mining module.
- SnowNLP: A library for processing Chinese text.
- TextBlob: Provides a consistent API for common natural language processing tasks.
- TextGrocery: A simple and efficient short text classification tool, based on LibLinear and Jieba.
- thulac: A Chinese lexical analysis toolkit developed and launched by the Natural Language Processing and Social and Humanities Computing Laboratory of Tsinghua University.
- polyglot: A natural language processing pipeline supporting hundreds of languages.
- pytext: A natural language model framework based on PyTouch.
- PyTorch-NLP: A toolkit to support rapid deep learning NLP prototyping research.
- spacy: A library for industrial-grade natural language processing in Python and Cython.
- Stanza: The official Python library of the Stanford NLP Group, supporting more than 60 languages.
- funNLP: Tools and datasets for Chinese natural language processing.
- pkuseg-python: A toolbox that supports Chinese word segmentation in different fields.
document
Library for generating project documentation.
- Sphinx: Python documentation generator.
- MkDocs: Markdown-friendly documentation generator.
- pdoc: A library that can replace Epydoc and can automatically generate API documentation for Python libraries.
- Pycco: A literate-programming style documentation generator.
- readthedocs: An online document hosting system based on Sphinx/MkDocs, free and open to open source projects.
Configuration
Library for saving and parsing configurations.
- config: A hierarchical configuration module written by the author of the logging module.
- ConfigObj: INI file parser with verification function.
- ConfigParser: (Python standard library) INI file parser.
- profig: Configuration through multiple formats, with numerical conversion function.
- python-decouple: Completely isolate setup and code.
- hydra: A framework for elegantly configuring complex applications.
Command line tools
Library for creating command line programs.
- Command line program development
- cement: A command-line programming framework for Python.
- click: A package for creating beautiful command line interfaces through composition.
- cliff: A framework for creating command line programs with multiple layers of commands.
- clint: Python command line program tool.
- docopt: Python-style command line argument parser.
- Gooey: A command that turns a command line program into a GUI program.
- python-prompt-toolkit: A library for building powerful interactive command line programs.
- python-fire: A library produced by Google for building command line interfaces based on Python classes.
- Pythonpy: Execute any Python instruction directly from the command line.
- Terminal presentation mode
- asciimatics: A cross-platform, full-screen terminal package (i.e. mouse/keyboard input and colored, positioned text output), complete with a high-level API for complex animations and special effects.
- alive-progress: A new progress bar with real-time throughput information and very cool animations.
- colorama: Cross-platform colored terminal text.
- bashplotlib: Basic plotting in the terminal.
- rich: A Python library that supports rich text and formatting in the terminal, and also provides a
RichHandler
log handler. - tqdm: A fast, scalable progress bar for use in loops and the command line.
- productivity tools
- aws-cli: Common command line interface for Amazon Web Services.
- caniusepython3: Determine which project is preventing you from porting to Python 3.
- cookiecutter: A command line tool for creating projects from cookiecutters (project templates).
- doitlive: A tool for live presentations in the terminal.
- pyftpdlib: An extremely fast and extensible Python FTP service library.
- howdoi: Get instant answers to your programming questions via the command line.
- PathPicker: Pick files from bash output.
- percol: Adds interactive selection capabilities to the UNIX shell's traditional pipe concept.
- thefuck: Fix your previous command line instructions.
- try: An extremely simple command line tool for trying out python libraries.
- copier: Library and command line utility for rendering project templates.
- Invoke: Used to manage shell-oriented sub-processes, and also supports organizing executable Python code into a state that can be called from the command line.
- tmuxp: tmux session manager.
- Advanced CLI
- httpie: A command-line HTTP client, a replacement for cURL that is easier to use.
- iredis: A redis command line tool that supports auto-completion and highlighting.
- kube-shell: K8S command line integrated shell tool.
- litecli: SQLite command line tool that supports auto-completion and syntax highlighting.
- mycli: MySQL command line client that supports auto-completion and syntax highlighting
- pgcli: Postgres command line tool that supports auto-completion and syntax highlighting.
- SAWS: An enhanced version of the AWS command line.
- Shell
- xonsh: A cross-platform, Unix-oriented shell language and command prompt based on python.
Downloader
Library used for downloading.
- s3cmd: A command line tool for managing Amazon S3 and CloudFront.
- s4cmd: Super S3 command line tool with more powerful performance.
- you-get: A YouTube/Youku/Niconico video downloader, written in Python 3.
- youtube-dl: A small command line program used to download YouTube videos.
- akshare: A financial data interface library created for people's convenience.
image processing
Library for manipulating images.
- pillow: Pillow is a more user-friendly version of PIL.
- hmap: Image histogram mapping.
- imgSeek: A project that uses visual similarity to search a collection of images.
- nude.py: Nude detection.
- python-barcode: Generate barcodes in a Python program without using other libraries.
- pygram: Instagram-like image filters.
- python-qrcode: A QR code generator implemented in pure Python.
- Quads: Quadtree-based computer art.
- scikit-image: A Python library for (scientific) image processing.
- thumbor: A small image service with cropping, resizing and flipping capabilities.
- wand: Python bindings for MagickWand. MagickWand is the C API of ImageMagick.
- face_recognition: A simple and easy-to-use Python face recognition library.
- pagan: Retro-style icon (avatar) generation tool based on input and hashing.
- PyMatting: A library that supports alpha matting.
- pywal: A tool for generating color schemes from images.
- pyvips: Low memory consumption and fast image processing library.
OCR
Optical character recognition library.
- paddleocr: Introduces table recognition in addition to optical character recognition.
- pyocr: A wrapper for Tesseract and Cuneiform.
- pytesseract: A wrapper for Google Tesseract OCR.
Audio
Libraries for manipulating audio
- audiolazy: A digital signal processing package for Python.
- audioread: Cross library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
- beets: a music library management tool and MusicBrainz tag adding tool.
- dejavu: Audio fingerprint extraction and recognition.
- django-elastic-transcoder: Django + Amazon Elastic Transcoder.
- eyeD3: A tool for manipulating audio files, specifically MP3 files containing ID3 meta-information.
- id3reader: A Python module for reading MP3 metadata.
- m3u8: A module used to parse m3u8 files.
- mutagen: A Python module for processing audio metadata.
- pydub: Manipulate audio files through a simple and concise high-level interface.
- pyechonest: Python client for the Echo Nest API.
- talkbox: A Python library for handling speech/signals.
- TimeSide: an open source web audio processing framework.
- tinytag: A library for reading music metadata from MP3, OGG, FLAC and Wave files.
- mingus: An advanced music theory and score package with support for MIDI files and playback capabilities.
- kapre: Keras audio processor.
- librosa: Audio music analysis Python library.
- matching: A library for audio mastering.
- pyAudioAnalysis: Audio feature extraction, classification, segmentation and applications.
- beets: a music library manager and MusicBrainz tagger.
Video
Library for manipulating videos and GIFs.
- moviepy: A script-based video editing module for a variety of formats, including animated GIFs.
- scikit-video: SciPy video processing common program.
- vidgear: A powerful multi-threaded video processing framework.
geographical location
Geocoding addresses and libraries for working with latitude and longitude.
- GeoDjango: a world-class geographic web framework.
- GeoIP: Python API for the MaxMind GeoIP Legacy database.
- geojson: Python bindings and tools for GeoJSON.
- geopy: Python address encoding toolbox.
- GeoIP2: GeoIP2 Webservice client and database Python API.
- django-countries: A Django application that provides country selection functionality for tables, flag icon static files, and countries fields in models.
- pygeoip: Python GeoIP interface.
HTTP
Library for using HTTP.
- aiohttp: Asynchronous HTTP network library based on asyncio.
- requests: Humanized HTTP request library.
- grequests: requests library + gevent for asynchronous HTTP requests.
- httplib2: Comprehensive HTTP client library.
- treq: A requests-like Python API built on top of the Twisted HTTP client.
- urllib3: A clear and friendly HTTP library with thread-safe connection pool, support for file post.
- httpx: The next generation Python HTTP client.
database
Database implemented in Python.
- pickleDB: A simple, lightweight key-value storage database.
- PipelineDB: Streaming SQL database.
- TinyDB: A tiny, document-oriented database.
- ZODB: A Python native object database. A key-value and object graph database.
Database driven
Library for connecting to and manipulating databases.
- MySQL: awesome-mysql series
- aiomysql: an asynchronous MySQL database operation library based on asyncio.
- mysql-python: MySQL database connector for Python.
- ysqlclient: mysql-python branch, supports Python 3.
- oursql: A better MySQL connector with support for native precompiled directives and BLOBs.
- PyMySQL: Pure Python MySQL driver, compatible with mysql-python.
- PostgreSQL
- psycopg2: The most popular PostgreSQL adapter for Python.
- queries: A wrapper of the psycopg2 library, used to interact with PostgreSQL.
- txpostgres: Twisted-based asynchronous PostgreSQL driver.
- Other relational databases
- apsw: Another Python SQLite wrapper.
- dataset: stores Python dictionaries in the database
- pymssql: A simple Microsoft SQL Server database interface.
- NoSQL database
- asyncio-redis: redis client based on asyncio (PEP 3156).
- cassandra-python-driver: Python driver for Cassandra.
- HappyBase: A developer-friendly library designed for Apache HBase.
- Plyvel: A fast and feature-rich Python interface to LevelDB.
- py2neo: Python wrapper 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: Twisted-based Redis client.
- kafka-python: Apache Kafka Python client.
- asynchronous client
- motor: Asynchronous Python driver supporting MongoDB.
ORM
A library that implements object-relational mapping or data mapping techniques.
- relational database
- Django Models: Part of Django.
- SQLAlchemy: Python SQL tool and object-relational mapping tool.
- awesome-sqlalchemy series
- Peewee: A small, expressive ORM.
- PonyORM: An ORM that provides a SQL interface to generators.
- python-sql: Write Python-style SQL queries.
- dataset: Stores dictionaries in the database, supports SQLite, MySQL and PostgreSQL.
- orator: Orator ORM, provides a simple and beautiful ActiveRecord implementation.
- orm: an asynchronous ORM.
- pony: An ORM that provides a SQL interface to generators.
- pydal: pure Python database abstraction interface layer.
- NoSQL database
- django-mongodb-engine: Django MongoDB backend.
- PynamoDB: A Python-style interface to Amazon DynamoDB.
- flywheel: An object mapping tool for Amazon DynamoDB.
- MongoEngine: A Python object document mapping tool for MongoDB.
- hot-redis: Provides Python's rich data types for Redis.
- redisco: A Python library that provides simple models and containers that can be persisted in Redis.
- other
- butterdb: Python ORM for Google Drive spreadsheets.
web framework
Full stack web framework.
- Django: The most popular web framework in the Python world.
- awesome-django(by shahraizali) series
- awesome-django(by wsvincent) series
- Flask: A Python micro-framework.
- Pyramid: A small, fast, and down-to-earth open source Python web framework.
- Bottle: A fast, small, lightweight WSGI micro-web framework.
- CherryPy: A minimalist Python web framework that complies with the HTTP/1.1 protocol and has a WSGI thread pool.
- TurboGears: A micro-framework that can be extended into a full-stack solution.
- web.py: A Python web framework that is both simple and powerful.
- web2py: A full-stack web framework and platform focused on simplicity and ease of use.
- Tornado: A web framework and asynchronous networking library.
- sanic: an asynchronous network framework based on Python3.5+.
- starlette: A lightweight, high-performance ASGI framework.
- Masonite: A modern, developer-focused Python web framework.
WebSockets
Web socket related libraries.
- autobahn-python: Python WebSocket and WAMP for Twisted and asyncio.
- channels: Developer-friendly asynchronous tools for Django.
- websockets: A library for building WebSocket servers and clients with a focus on correctness and simplicity.
Permissions
Libraries that allow or deny user access to data or functionality.
- Carteblanche: A code alignment module developed from the perspective of users and designers, which handles code navigation and permissions well.
- django-guardian: Django 1.2+, implements single object permissions.
- django-rules: A small but powerful application that provides object-level permission management without using a database.
CMS
Content management system.
- odoo-cms: An open source, enterprise-level CMS based on odoo.
- django-cms: An open source, enterprise-level CMS based on Django.
- djedi-cms: A lightweight yet powerful Django CMS built with plugins, inline editing, and performance in mind.
- FeinCMS: One of the most advanced content management systems built on Django.
- Kotti: A high-level, Python-based web application framework built on Pyramid.
- Mezzanine: A powerful, continuous and flexible content management platform.
- Opps: A CMS platform designed for magazines, newspaper websites and high-traffic portal websites, based on Django.
- Plone: A CMS built on the open source application server Zope.
- Quokka: Flexible, scalable small CMS based on Flask and MongoDB.
- Wagtail: A Django content management system.
- Widgy: The latest CMS framework, based on Django.
- indico: A feature-rich event management system developed by @CERN.
e-commerce
Frameworks and libraries for e-commerce and payments.
- django-oscar: An open source e-commerce framework for Django.
- django-shop: A store system based on Django.
- Cartridge: A shopping cart application built on Mezzanine.
- shoop: an open source e-commerce platform based on Django.
- alipay: Unofficial Python Alipay API.
- merchant: A Django application that can accept payments from multiple payment platforms.
- money: a currency library. Comes with optional CLDR backend localization format, providing a scalable currency exchange solution.
- python-currencies: Display currency format and its numerical value.
- forex-python: Foreign exchange rates, Bitcoin price index and currency conversion.
- saleor: an e-commerce platform compatible with Django.
RESTful API
Library for developing RESTful APIs
- Django
- django-rest-framework: A powerful and flexible tool for building web APIs.
- django-tastypie: Develop APIs for Django applications.
- django-formapi: Create JSON APIs for Django form validation.
- Flask
- flask-api: Developed for flask, you can browse Web APIs.
- flask-restful: Quickly create REST APIs for flask.
- flask-restless: Create RESTful APIs for database models defined by SQLAlchemy.
- flask-api-utils: Handles API representation and validation for Flask.
- eve: REST API framework, driven by Flask, MongoDB, etc.
- Pyramid
- cornice: A REST framework for Pyramid.
- frame-agnostic
- falcon: A high-performance framework for building cloud APIs and web app backends.
- sandman: Automatically create REST APIs for existing database-driven systems.
- restless: A framework-agnostic REST framework based on knowledge learned from Tastypie.
- ripozo: Quickly create REST/HATEOAS/Hypermedia APIs.
- apistar: An intelligent Web API framework designed for Python 3.
- fastapi: A modern, fast, web framework based on standard Python type annotations, which can use Python3.6+ version to build API.
- hug: A Python 3 framework built for clean, public APIs.
- sandman2: Automatically generate REST APIs for database-driven systems.
- vibora: A fast, efficient and asynchronous web framework, inspired by Flask.
verify
A library that implements verification schemes.
- OAuth
- authlib: A powerful Python library for building OAuth and OpenID servers. Includes: JWS, JWK, JWA, JWT.
- Authomatic: A simple yet powerful framework for authentication/authorization clients.
- django-allauth: Authentication application for Django.
- django-oauth-toolkit: OAuth2 for Django users.
- django-oauth2-provider: Provides OAuth2 access for Django applications.
- Flask-OAuthlib: OAuth 1.0/a, 2.0 client implementation for use by Flask.
- OAuthLib: A common, complete implementation of OAuth request-signature logic.
- python-oauth2: A fully tested abstract interface. Used to create OAuth clients and servers.
- python-social-auth: A simple to set up social authentication method.
- rauth: Python library for OAuth 1.0/a, 2.0, and Ofly.
- sanction: A super simple OAuth2 client implementation.
- other
- PyJWT: JSON Web Token Draft 01.
- python-jws: Implementation of JSON Web Signature Draft 02.
- python-jwt: A module for generating and validating JSON web tokens.
- python-jose: Python version of JOSE implementation.
template engine
Libraries and tools for template generation and lexical parsing.
- Jinja2: A modern, designer-friendly template engine.
- Chameleon: An HTML/XML template engine. Imitates ZPT (Zope Page Templates) and optimizes the speed.
- Genshi: A Python template tool for generating web-aware results.
- Mako: Ultra-fast lightweight templates for the Python platform.
queue
Library for handling events and task queues.
- celery: an asynchronous task queue/job queue based on distributed messaging
- daramatiq: A fast and reliable background task processing library for Python 3.
- huey: small multi-threaded task queue.
- mrq: A Python distributed worker task queue, using Redis and gevent.
- rq: A simple Python job queue.
- simpleq: A simple, infinitely scalable queue based on Amazon SQS.
search
Libraries and software that index data and perform search queries.
- django-haystack: Modular search for Django.
- elasticsearch-py: The official underlying Python client of Elasticsearch.
- elasticsearch-dsl-py: The official high-level Python client for Elasticsearch.
- solrpy: Python client for solr.
- pysolr: A lightweight Python decorator supporting Apache Solr.
- Whoosh: A fast pure Python search engine library.
news feed
Library for creating user activities.
- django-activity-stream: Generate a universal activity stream from your site actions.
- Stream-Framework: Create dynamic messaging and notification systems using Cassandra and Redis.
Web resource management
Tools for managing, compressing, and shrinking website resources.
- django-compressor: Compress linked and inline JavaScript or CSS into a single cached file.
- django-pipeline: Django’s resource packaging library.
- django-storages: A collection of tools for custom storage backends for Django.
- fanstatic: Packaging, optimization, and providing static file dependencies as Python packages.
- File Conveyor: A daemon that discovers and synchronizes files to CDNs, S3 and FTP.
- Flask-Assets: Helps you integrate web resources into your Flask app.
- jinja-assets-compressor: A Jinja extension to compile and compress your assets.
- webassets: Generate unique cache URLs for packaging, optimizing and managing your static assets.
cache
Library for caching data.
- Beaker: A caching and session library that can be used in web applications and standalone Python scripts and applications.
- django-cache-machine: Automatic caching and invalidation of Django models.
- django-cacheops: ORM with automatic granular event-driven invalidation.
- django-viewlet: Renders templates with additional cache control.
- dogpile.cache: dogpile.cache is a next-generation replacement for Beaker, developed by the same author.
- HermesCache: Python caching library with tag-based invalidation and dogpile effect protection.
- johnny-cache: Django application caching framework.
- pylibmc: Python wrapper of the libmemcached interface.
- python-diskcache: SQLite and file-backed cache backend with faster lookups than memcached and redis.
e-mail
Library for sending and parsing emails.
- django-celery-ses: Django email backend with AWS SES and Celery.
- envelopes: An email library for human use.
- flanker: an email address and Mime parsing library.
- imbox: Python IMAP library.
- inbox.py: Python SMTP server.
- inbox: an open source email toolbox.
- lamson: Python style SMTP application server.
- mailjet: Mailjet API implementation, used to provide batch email sending, statistics and other functions.
- marrow.mailer: A high-performance scalable email distribution framework.
- modoboa: An email hosting and management platform with a modern, minimalist web UI.
- pyzmail: Create, send and parse emails.
- Talon: Mailgun library for extracting messages and signatures.
- yagmail: yagmail is a GMAIL/SMTP client designed to make sending email as simple as possible.
- salmon: A Python mail server.
- mailer: A high-performance and scalable mail delivery framework.
internationalization
Library for internationalization.
- Babel: An internationalization library for Python.
- Korean: A Korean lexicon library.
- PyICU: A Python extension that wraps the ICU C++ library.
URL handling
Library for parsing URLs
- furl: A small Python library that makes processing URLs easier.
- purl: A simple, immutable URL class with a concise API for interrogation and processing.
- pyshorteners: A pure Python URL shortening library.
- shorturl: Python implementation for generating short URLs and short links similar to bit.ly.
- webargs: A library for parsing HTTP request parameters, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado and Pyramid.
HTML processing
Library for processing HTML and XML.
- BeautifulSoup: Iterate, search, and modify HTML or XML in a Pythonic way.
- bleach: A whitelist-based HTML sanitization and text linking library.
- cssutils: A CSS library for Python.
- html5lib: A standards-compliant HTML document and fragment parsing and serialization library.
- lxml: A very fast, easy-to-use, full-featured library for processing HTML and XML.
- MarkupSafe: Implement XML/HTML/XHTML markup safe strings for Python.
- pyquery: A library for parsing HTML, similar to jQuery.
- requests-html: A user-friendly, Pythonic HTML parsing library.
- untangle: Convert XML documents into Python objects so that they can be easily accessed.
- xhtml2pdf: HTML/CSS to PDF tool.
- xmltodict: Process XML like JSON.
- WeasyPrint: Visual rendering engine for HTML and CSS, and can export to PDF.
- xmldataset: Simple XML parsing.
Library for crawling web sites
- Scrapy: A fast and advanced screen scraping and web scraping framework.
- ScrapydWeb: A full-featured web UI for Scrapyd cluster management, supporting Scrapy log analysis and visualization, automatic packaging, timer tasks, email notifications and other special features.
- cola: a distributed crawler framework.
- Demiurge: A crawler micro-framework based on PyQuery.
- feedparser: Universal feed parser.
- Grab: Site scraping framework.
- MechanicalSoup: A Python library for automating interactions with web sites.
- portia: Scrapy visual crawling.
- pyspider: a powerful crawler system.
- RoboBrowser: A simple, Python-style library for browsing websites without the need for a separately installed browser.
Web content extraction
Library for web content extraction.
- Haul: A scalable image scraping tool.
- html2text: Convert HTML to Markdown format text.
- lassie: a user-friendly web content retrieval library.
- micawber: A small web content extraction library used to extract rich content from URLs.
- newspaper: Use Python for news extraction, article extraction and content curation.
- OpenGraph: a Python module used to analyze the Open Graph Protocol.
- Python-GOOSE: HTML content/article extractor (Python2).
- Goose3: HTML content/article extractor (Python3).
- Python-Readability: Python high-speed port of ARC90 Readability tool.
- Sanitize: Conditioning to the messy data world.
- Sumy: A module for automatic abstracts for text files and HTML pages.
- Textract: Extract text from any format, word, PowerPoint, PDFS, etc.
form
Make the library of form operation.
- DEFORM: Python HTML form generate library, which is inspired by the Formish form generating library.
- Django-Bootstrap3: Django of Bootstrap 3 integrates.
- Django-Bootstrap4: Django, which integrates Bootstrap 4.
- Django-Crispy-Forms: A Django application that allows you to create a beautiful form in a very elegant and DRY (DON'T Repeat Yourself) way.
- Django-Remote-Forms: A platform serialization tool with an independent Django table.
- WTForms: A flexible form verification and presentation library.
- WTForms-JSON: an WTForms extension to process JSON data.
Data validation
Data verification library. Mostly used for form verification.
- CERBERUS: a mapping verification (MAPPINGS-VALIDATOR). Support a variety of rules and provide a normalized function, which can be easily customized as a Python -style SchedHema definition.
- ColanDer: A system for data obtained from XML, JSON, HTML forms or other equally simple serialized data obtained.
- Kmatch: A language for matching/verification/screening Python dictionary.
- SCHEMA: A library for verification of the Python data structure.
- Schematics: data structure verification.
- Valideer: Lightweight scalable data verification and adaptation library.
- Voluptuous: a Python data verification library. It is mainly to verify data such as JSON, YAML and other data introduced in Python.
- JSonsChema: Python implementation of JSON SCHEMA for JSON data verification.
Serialize
Complex data type serialization related library.
- Marshmallow: A lightweight library to convert complex objects with simple Python data types.
- pysimdjson: Simdjson binded to Python.
- Python-Rapidjson: Python package of Rapidjson.
- Ultrajson: The fast JSON decoder and encoder are written in Python binding.
Anti -junk technology
Help you fight with electronic garbage.
- Django-SIMPLE-CAPTCHA: A simple, highly customized Django application can add verification codes to any Django form.
- Django-Simple-SPAM-BLOCKER: A simple electronic garbage shielding tool for Django.
mark
Used to make a library.
- Django-Taggit: Simple Django mark tool.
Admin panel
Management interface library.
- Ajenti: A managed panel worthy of your server.
- Django-Suuit: A substitute for the Django management interface (only free for non-commercial use).
- Django-Xadmin: A substitute for Django Admin, which has many good functions.
- Flask-Admin: A simple scalable management interface framework for Flask.
- Flower: A tool for real -time monitoring and providing the web management interface for the Celery cluster.
- Grappelli: a beautiful skin in the Django management interface.
- Wooey: A Django application can create a web user interface for the Python script.
- Django-Grapplli: Django Admin interface with a gorgeous appearance.
- Django-Jet: Modern response Django management interface template with improvement function.
- Jet-Bridge: Manage the panel framework, suitable for any application with good UI (such as Django).
Serverless framework
Use Python to develop a library related to the Serverless model.
- Python-Lubda: Develop and deploy Python code tool packs in AWS Lambda.
- ZAPPA: Tools to deploy WSGI applications in AWS Lambda and API Gateway.
Static site generator
The static site generator is a software that uses text and templates as input, and then outputs HTML files.
- Pelican: Use Markdown or REST to process the content, and Jinja 2 is made to make themes. Support DVCS, Disqus. AGPL permit.
- Cactus: Static site generator designed for designers.
- Hyde: The static site generator based on Jinja2.
- Nikola: a static website and blog generator.
- Tinkerr: Tinkerer is a blog engine/static site generator, driven by Sphinx.
- Lektor: A simple and easy -to -use static CMS and blog engine.
- Makesite: Simple and lightweight site/blog generator (less than 130 lines).
process
The operating system process starts and communication libraries.
- ENVOY: more humane than the Python Subprocess module.
- SARGE: Another pack of Subprocess module.
- SH: A complete Subprocess replacement library.
- delegator.py: Humanized Subprocess 2.0 version.
Concurrent and parallel
Used to perform a library for concurrent and parallel operations.
- MULTIPROCESSING: (Python Standard Library) The "thread" interface based on the process.
- Threading: (Python Standard Library) higher -level thread interface.
- Eventlet: Support WSGI asynchronous framework.
- GEVENT: A corporate -based Python network library, using Greenlet.
- Tomorrow: The magical decorative grammar implementation used to generate asynchronous code.
- UVLOOP: The Asyncio incident cycle is super fast above libuv.
- Concurrent.futures: (Python Standard Library) Asynchronously executes advanced interfaces that can be called.
- Gevent: Python network library based on Greenlet and corporate -based.
- Scoop: Support scaling parallel operation in Python.
network
Library for network programming.
- Asyncio: (Python Standard Library) asynchronous I/O, event cycle, coroutine and tasks.
- Trio: Asynchronous and I/O -friendly libraries.
- Twisted: A network engine driven by an event.
- Pulsar: Event drive -off framework.
- Diesel: Event I/O framework based on Greenlet.
- pyzmq: Python package of a zeromq message library.
- ToAPI: A lightweight, simple, fast Flask library, is committed to providing API services for all websites.
- TXZMQ: Python packaging based on Twisted Zeromq message library.
WebSockets
Help use the library of WebSocket.
- Autobahnpython: For Python, websocket & wampy used is based on Twisted and Asyncio.
- CrossBar: Websocket & Wamp for Python on Autobahn.
- Django-Socketio: Websockets for Django.
- WebSocket-For-Python: WebSocket client and server library written for Python2/3 and Pypy.
WSGI server
Compatible with WSGI web server
- Gunicorn: Pre-Forward, partly written by C language.
- UWSGI: The purpose of the UWSGI project is to develop a set of full -stack tools for establishing hosting services, which are written by C language.
- bjoern: asynchronous, very fast, written by C language.
- Fapws3: Asynchronous (only for network end), written by C language.
- Meinheld: asynchronous, partly written by C language.
- Netius: asynchronous, very fast.
- Paste: Multi -threaded, stable, long test.
- Rocket: Multi -threaded.
- Waitress: Multi -threaded, it drives the Pyramid framework.
- Werkzeug: A WSGI tool library, driving Flask, and it is convenient to embed it in your project.
Asgi server
Compatible with ASGI Web server.
- DAPHNE: For servers for ASGI and ASGI-HTTP, supporting servers that support HTTP, HTTP2 and WebSocket protocols.
- Uvicorn: Lightning -like ASGI servers implemented with UVLOOP and HTTPTOOLs.
RPC server
Compatible with RPC server.
- SimplejsonRPCSERVER: This library is an implementation of the JSON-RPC specification.
- Simplexmlrpcserver: (Python Standard Library) Simple XML-RPC server implementation, single thread.
- Zerorpc: ZerorPC is a flexible RPC implementation, based on Zeromq and MESSAGEPACK.
- RPYC (Remote Python Call): It is suitable for Python's transparent and symmetrical RPC library.
Cryptography
- Cryptography: This software is provided to Python developers with basic content and methods of cryptography.
- Hashids: Hashids in Python.
- Paramiko: Python (2.6+, 3.3+) of the SSHV2 protocol provides the function of the client and server.
- Passlib: Security password storage / hash 库.
- PyCrypto: Python Code Study Toolbox.
- Pynacl: Python binding of network and cryptography (NaCl) library.
Graphical user interface
The library used to create a graphical user interface program.
- CURSES: Built -in NCURSES packaging to create terminal graphical user interfaces.
- Enaml: Use QML's Declaratic syntax to create a beautiful user interface.
- Kivy: A library used to create natural user interaction (NUI) applications can run on Windows, Linux, Mac OS X, Android and iOS platforms.
- Pyglet: Python's cross -platform window and multimedia library.
- PYQT: Python binding of cross -platform user interface framework QT supports QT V4 and QT V5.
- PYSIDE: Python binding of cross -platform user interface framework QT supports QT V4.
- Tkinter: Tkinter is a factual standard library for Python GUI.
- TOGA: A native GUI tool package of the operating system.
- UrWid: A library used to create terminal GUI applications, support components, events and rich colors.
- WXPython: WXPYTHON is a product mixed with the WXWIDGETS C ++ class library and Python language.
- Pygobject: Glib/GOBJECT/GIO/GTK+ (GTK+ 3) Python binding.
- Flexx: Flexx is a tool set used by pure Python language to create a GUI program. It uses web technology to display interface.
- Eel: Library for making simple offline HTML/JS GUI applications.
- PysimpleGui: Tkinter, QT, WXPython and Remi packaging.
- Pywebview: Lightweight cross -platform native packaging around web view components.
- DEARPYGUI: A simple Python GUI framework with GPU acceleration.
game development
A great game development library.
- COCOS2D: COCOS2D is a framework for developing 2D games, examples and other graphics/interactive applications. Based on Pyglet.
- PANDA3D: 3D game engine developed by Disney, and is maintained by Carnegie Malong Entertainment Technology Center. Written with C ++ and completely encapsulate for Python.
- Pygame: Pygame is a set of Python modules for writing games.
- Pyogre: Python binding of the OGRE 3D rendering engine can be used to develop any 3D applications such as games and simulation programs.
- Pyopengl: OpenGL's Python binding and its related APIS.
- PYSDL2: The package of SDL2 library is based on Ctypes.
- Renpy: a Visual Nivel engine.
- Arcade: A modern Python framework is used to make fascinating graphics and sound games.
- Harfang3D: Python framework for supporting 3D, VR and game development.
log
The library used to generate and operate logs.
- Logging: (Python Standard Library) provides a log function for Python.
- Logbook: alternative to the logging library.
- Eliot: Create a log for complex and distributed systems.
- Raven: Sentry's Python client.
- SENTRY: Real -time recording and collection of log servers.
- Sentry-Python: Python version of SENTRY SDK.
- Loguru: The Python log library aims to bring a pleasant experience.
- StructLog: Structural logs make the logs simple.
test
Perform the code library testing and generating test data libraries.
- Test framework
- Unittest: (Python Standard Library) unit test framework.
- Nose: Nose expands the function of Unittest.
- Nose2
nose
's successor, based on unittest2
. - Contexts: a Python 3.3+ BDD framework. Inspired by C# Machine.specifications.
- Hypothesis: Hypothesis is a test library based on advanced Quickcheck style characteristics.
- Mamba: Python's ultimate testing tool, support BDD.
- Pyshould: Should style, based on Pyhamcrest.
- pytest: a mature full -function Python testing tool.
- Green: Clean, colorful testing tools.
- Pyvows: BDD -style testing tools are inspired by VOWS.JS.
- Robot Framework: A universal automation test framework.
- TOX: The tools for automation testing and release support multiple Python versions.
- GUI / Web test
- Selenium: Python binding of Selenium Webdriver.
- Pyautogui: Pyautogui is a humanized cross -platform GUI automatic test module.
- Locust: Written by Python, scalable users load testing tools.
- SIXPACK: A/B test framework that has nothing to do with language.
- splinter: open source web application testing tool.
- Schemathesis: Automatic testing tools based on attributes are used to test the web application built using Open API / SWAGGER specifications.
- MOCK test
- Mock: (Python Standard Library) A library for fake testing.
- Doublex: Python's functional Doubles test framework.
- Freezegun: Different time is generated by falsifying date modules.
- HTTMOCK: For python 2.6+ and 3.2+ generates forgery requests.
- httpretty: python http request Mock tool.
- Responses: A general library for the Requests library in Python.
- Vcr.py: Record and replay HTTP interaction in your test.
- Mocket: Gevent/Asyncio/SSL supports Socket Mock framework.
- Object factory
- FactoryBoy: Test FIXTURES replaced library for a Python.
- Mixer: Another test fixtures replacement library, supports Django, Flask, SQLALCHEMY, Peewee, etc.
- Modelmommy: Create random firmware for Django test.
- Code coverage rate
- COVERAGE: code coverage measurement.
- CODECOV: A code coverage test tool, providing free code coverage test services for open source projects.
- Pseudo -data data
- Faker: A Python library is used to generate pseudo -data.
- Fake2DB: pseudo database generator.
- Mimesis: a Python library that helps you generate pseudo -data.
- radar: generate random date/time.
- Error handling
- Fuckit.py: Use the most advanced technology to ensure that your Python code can continue to run, whether right or wrong.
Penetration testing
Soning test -related framework and tools.
- FSOCIETY: an infiltration test framework.
- Setoolkit: Social Engineering Tool Pack.
- SQLMAP: Automatic SQL injection and database takeover tools.
Code analysis and lint tool
Code analysis, analysis and operation code libraries and tools.
code analysis
- Coala: Language independence and easy -to -expand code analysis applications.
- Code2Flow: Convert your Python and JavaScript code to flowchart.
- pycallgraph: This library can visualize the process (call diagram) of your Python application.
- pysonar2: Python type inference and retrieval tool.
- PROSPECTOR: Tools to analyze Python code.
- Vulture: tools used to discover and analyze the ineffective Python code.
Lint tool
Flake8: Modular source code checking tool, which provides decorators related to pycodestyle
, pyflakes
, McCabe.
- AWESOME-FLAKE8-EXTENSIONS
Pylint: A completely customized source code analyzer.
YAPF: Google's Python code format tool.
Pylama: Python and JavaScript code review tools.
WEMAKE-PYTHON-Styleguide: The most stringent Python code review tool in history.
Code format
- AutoPEP8: Automatically format the Python code so that it meets the PEP8 specification.
- Black: A firm Python code format tool.
- Isort: Python library for correcting the order of the package.
Static type examination, you can also refer to AweSome-Python-Typing
- Mypy: Check the variable type during compilation.
- Pyre-Check: Performance type examination.
- TypeShed: The collection of Python inventory with a static type.
Static type annotation generator
- MonkeyType: The system that generates static types for Python by collecting the type of running.
- pyannotate: Automatically generate annotations that conform to PEP-484.
- pytype: Check and infer the type in the Python code without adding annotations.
Debugging tools
Library for code debugging.
debugger
- IPDB: PDB enabled by ipython.
- PUDB: Full screen, Python debugger based on the console.
- PDB ++: Another PDB substitution.
- Pyringe: The debugger that can be added and injected with code in the Python process.
- WDB: A strange web debugger work through WebSockets.
- WinPDB: A Python debugger with a graphical user interface can perform remote debugging, based on RPDB2.
tracker
- Lptrace: Strace created for the Python program.
- Manhole: Debug the UNIX jet connection, and display the stack tracking and interactive prompts of all threads.
- Pyringe: It can be attached to the Python process and inject the code into the debugger of the Python process.
- Python-Hunter: A flexible code tracking tool package.
Performance analysis
- LINEPROFILER: Follow performance analysis.
- Memory Profiler, Memory: Monitor the memory of Python code.
- Profiling: An interactive Python performance analysis tool.
- Py-SPY: Python program sampling analyzer, implemented with Rust.
- pyflame: for Python tracking analyzer.
- VPROF: Visual Python analyzer.
other
- PyldTools: Analyze and analyze ELF files and DWARF debugging information.
- Python-STATSD: Python client of the statsd server.
- Django-Debug-Toolbar: Display various debugging information for Django.
- Django-DevServer: A substitute for a Django running server.
- Flask-Debugtoolbar: Django-Debug-Toolbar Flask version.
- ICECREAM: C check -up variables, expressions and program execution through a simple function call.
Scientific computing and data analysis
Library used to analyze scientific computing and data analysis.
- Astropy: A astronomical Python library.
- BCBIO-NextGen: This toolbox provides a processing process that conforms to the best practice for fully automatic high-throughput sequencing analysis.
- BCCB: Biological analysis related code collection.
- BIOPYTHON: BIOPYTHON is a set of tools for biological computing that can be used for biological computing for free.
- Blaze: Numpy and Pandas big data interface.
- CCLIB: A library used to analyze and explain the output results of computing chemical software packages.
- NetworkX: A high -performance software designed for complex networks.
- Neupy: execute and test various artificial neural network algorithms.
- Numpy: Use Python for the basic package for scientific computing.
- Open Babel: A chemical toolbox is used to describe a variety of chemical data.
- Open Mining: Use Python to excavate commercial intelligence (BI) (Pandas Web interface).
- Orange: Data mining, data visualization, analysis and machine learning are performed by visual programming or Python script.
- Pandas: Provide high -performance, easy -to -use data structure and data analysis tools.
- Pydy: Pydy is the abbreviation of Python Dynamics to help the dynamic motion modeling workflow, based on Numpy, SCIPY, iPython and Matplotlib.
- Pymc: Malcov Chain Monte Carlo sampling tool.
- RDKIT: Chemical Information and Machine Learning Software.
- SCIPY: Ecosystems composed of open source software based on Python, an open source software for mathematics, science and engineering.
- Statsmodels: Statistical modeling and metering economics.
- Sympy: a Python library for symbolic mathematics.
- Zipline: a Python algorithm trading library.
- Bayesian-Belief-Networks: Elegant Bayesian concept network framework.
- AWS Data Wrangler: Pandas used on the AWS platform.
- Optimus: When using pyspark, make the scientific work process of agile data.
- Colour: a lot of color theory conversion and algorithm implementation.
- Karat Club: Unsupervised machine learning toolbox for graphical structured data.
- Nipy: Collection of neurological influence toolboxes.
- OBSPY: Seismology Python toolbox.
- Onetip: python version quantum toolbox.
- Simpy: A process -based discrete event simulation framework.
data visualization
Perform data visualization libraries. See: Awesome-JavaScript.
- Matplotlib: a Python 2D drawing library.
- Bokeh: Use Python to draw interactive web drawing.
- GGPLOT: Python version of the API provided by GGPlot2 for R.
- Plotly: WEB drawing gallery working with Python and Matplotlib.
- PyeCharts: Data visual library based on Baidu ECharts.
- pygal: a Python SVG chart creation tool.
- pygraphviz: Graphviz's Python interface.
- Pyqtgraph: interactive real -time 2D/3D/image drawing and scientific/engineering components.
- Snakeviz: A browser -based Python's Cprofile module output result View tool.
- Vincent: Convert Python to a conversion tool for Vega syntax.
- Vispy: High -performance science visualization tool based on OpenGL.
- Altair: For Python's statement statistics visual library.
- BQPLOT: Jupyter Notebook interactive drawing database.
- CARTOPY: Python mount supported by Matplotlib.
- DASH: Build on Flask, React, and Plotly, which aims to analyze web applications.
- Diagrams: Use the chart as code.
- Plotnine: Python graphics based on GGPLOT2.
- Pygraphviz: Graphviz's Python interface.
- Seaborn: Use Matplotlib for statistical data visualization.
computer vision
Computer vision related library.
- Opencv: open source computer vision library.
- Pyocr: packaging library of Tesseract and CuneIFORM.
- Pytesseract: Another packaging library of Google Tesseract OCR.
- Simplecv: An open source framework to create computer vision applications.
- Easyocr: OCR with more than 40 languages.
- Face Recognition: Simple facial recognition library.
- Kornia: PyTorch's open source differentiation computer vision library.
- TESSEROCR: Another simple, compatible
tesseract-ocr
API decorator can be used for OCR.
deep learning
Neural network and deep learning -related framework. You can also refer to AWESOME-Deep-Learning.
- Caffe: a Caffe Python interface.
- Caffe2: A lightweight, modular, scalable deep learning framework.
- Keras: TensorFlow/theano/CNTK as a back -end deep learning packaging library, quickly get started with neural networks.
- MXNet: A highly efficient and flexible deep learning framework.
- PyTorch: A deep learning framework with tensor and dynamic neural network and strong GPU acceleration ability.
- Serpentai: Game proxy framework, can use any video game as deep learning sandbox.
- THEANO: A fast numerical calculation library.
- TensorFlow: Google's most popular deep learning framework.
- SKFlow: A simplified interface of a TensorFlow (imitating scikit-leARN).
- hebel: GPU Accelerating Deep Learning Library.
- pydeep: python deep learning library.
machine learning
For machine learning related libraries, you can also refer to AWESOME-MACHINE-Learning.
- CRAB: Flexible and fast recommendation engine.
- Nupic: Intelligent computing Numenta platform.
- Pattern: Python network mining module.
- Pybrain: Another Python machine learning library.
- Pylearn2: A machine learning library based on Theano.
- Python-RECSYS: an Python library used to realize the recommendation system.
- SCIKIT-Learn: Python module based on SCIPY-based machine learning.
- VowPalPorpoise: Python package of lightweight Vowpal Wabbit.
- GYM: Tool package for development and compare learning algorithms.
- H2O: Open source fast and scalable machine learning platform.
- Metrics: evaluation indicators for machine learning.
- Vowpal_Porpoise: Python version of Vowpal Wabbit decoration.
- XGBOOST: scalable, portable and distributed gradient enhancement libraries.
- MindSDB: MindSDB is the open source AI layer of the existing database, which allows the use of standard query to easily develop, train and deploy the latest machine learning model.
Recommendation system
Used to build a related library for the recommendation system.
- Annoy: Memory optimization has been performed near the near -neighbor algorithm implemented by C ++/Python.
- Fastfm: Factorization Machine related library.
- Implicit: The fast Python implementation of collaborative filtering the hidden dataset.
- libffm: Field-Aware Factorization Machine (FFM) related library.
- Lightfm: Python implementation of many popular recommendation algorithms.
- SpotLight: Using in -depth recommendation model with PyTorch.
- Surprise: Scientific tools used to build and analyze the recommendation system.
- TensorRec: TensorFlow's recommendation engine framework.
distributed computing
Distributed computing related framework and library.
- DPARK: Spark's Python clone version, a framework similar to MapReduce.
- Dumbo: This Python module allows people to easily write and run the Hadoop program.
- Luigi: This module helps you build a complex pipeline for batch processing operations.
- Mrjob: Run the MapReduce task on Hadoop or Amazon Web Services.
- DASK: The flexible parallel computing library used to analyze the calculation.
- Pyspark: Spark's Python API.
- Ray: A system for parallel and distributed Python, which unifies the machine learning ecosystem.
- Faust: a Python stream processing library, the core idea source Kafka Streams.
- StreamPars: Python code running for factual data streams. Integrate Apache Storm.
- MARS: It is based on a tensor and a unified calculation framework for large -scale data calculation.
functional programming
Use Python to perform functional programming.
- Cytoolz: Toolz's Cython implementation: high -performance function tool.
- Fn.py: Functional programming in Python: It implements some functions that enjoy the lack of functional programming.
- Funcy: Cool and practical functional tool.
- Toolz: Functional programming tool for iterators, functions, and dictionaries.
- Coconut: Python variant built for simple, elegant, more Pythonic functional programming.
- More-ITERTOOLS: It has more iterative objects to operate more than
itertools
. - ReturnS: A safe unit, converter and synthetic tools.
Third -party API
Used to access the library of third -party API. See: list of python api wrappers and libraries.
- Apache-Libcloud: A Python library designed for various clouds.
- Boto3: Amazon Web Services Python interface.
- Django-wordpress: Django's WordPress model and view.
- Facebook-SDK: Python SDK on the Facebook platform.
- Facepy: Facepy makes it easier to interact with Facebook's Graph API.
- Gmail: Gmail's Python interface.
- Google-API-Python-Client: Google Apis client library for Python.
- GSPREAD: Python API of Google electronic table.
- Twython: package of Twitter API.
DevOPS Tool
Software and libraries used for DEVOps.
- Ansible: A very simple IT automation platform.
- SALTSTACK: Infrastructure automation and management system.
- OpenStack: Open source software used to build private and public clouds.
- Docker Compose: Fast, separated development environment, using Docker.
- Fabric: A simple, Python -style tool is used for remote execution and deployment.
- Cuisine: Provide a series of advanced functions for Fabric.
- Fabtools: a tool to write a superb Fabric file.
- gitapi: Git's pure Python API.
- Hgapi: Mercurial's pure Python API.
- Honcho: Foreman's Python clone version, which is used to manage the application -based application.
- PEXPECT: Control the interactive program in a pseudo -terminal, just like GNU Expect.
- PSUTIL: A cross -platform process and system tool module.
- Supervisor: Unix's process control system.
- Cloudinit: One multi -divide package is used to handle the early initialization of cloud instances.
- Pyinfra: A common CLI toolkit and Python library for automated infrastructure.
- Honcho: Foreman's Python clone version, which is used to manage the application based on ProcFile.
- BORGBACKUP: Repeated data deleted archives with compression and encryption functions.
- Docker-compose: Use Docker's fast and independent development environment.
Task scheduling
Task scheduling library.
- APSCHEDULER: Lightweight but powerful task scheduling, allowing you to schedule your function.
- Django-Schedule: a Django schedule application.
- Doit: A mission execution and construction tool.
- Gunnery: The multi -purpose task execution tools used by distributed systems have a web interaction interface.
- JOBLIB: A set of tools for Python to provide lightweight operational assembly lines.
- PLAN: If you are helpful to write the crontab file.
- Schedule: Humanized Python task scheduling library.
- Spiff: Use a powerful workflow engine implemented with pure Python.
- Taskflow: A Python library that allows you to perform the task is consistent and reliable.
- Airflow: It is a workflow distribution management system. It manages task processes through a non -circulating diagram, and sets task dependency and time scheduling.
- Prefect: A modern workflow arrangement framework makes it easy to build, plan and monitor strong data pipelines.
Foreign function interface
Use the library of the foreign function interface.
- CFFI: The external function interface used to call C code.
- Ctypes: (Python Standard Library) The external function interface used to call C code.
- Pycuda: package of NVIDIA CUDA API.
- SWIG: Simplified packaging and interface generator.
Refactor
Python reconstructs related libraries and tools.
- BICYCLE Repair Man: Python Reconstruction Tool.
- BOWLER: It is applicable to the security code reconstruction of modern Python.
- Rope: a python reconstruction library.
high performance
Make Python faster libraries.
- Cython: Optimized Python Static Compiler. Use the type mixing to compile the Python into the C or C ++ module to obtain great improvement.
- Clpython: The implementation of Python programming language written in Common Lisp.
- GRUMPY: The compiler is more powerful than the interpreter's CPYTHON2.7 alternative (Alpha).
- IronPython: Implementation of Python programming language written in C #.
- Jython: The implementation of Python programming language written by Java Java.
- Micropython: Streaming and efficient Python programming language.
- Pyjion: Python JIT based on Coreclr.
- Numba: Python JIT (Just in Time) compiler, developed by Python for scientific, was developed by developers of Cython and Numpy.
- Peachpy: The X86-64 assembler embedded in Python. It can be used as a compilation device or an independent assembler for Python, for Windows, Linux, OS X, Native Client or GO.
- Pypy: Python implemented with python. The interpreter uses black magic to speed up the running speed of Python without adding additional type information.
- Pyston: Python implemented using LLVM and modern JIT technology, the goal is to obtain good performance.
- Stackless Python: A reinforced version of Python.
Microsoft's Windows platform
Python programming is performed on the Windows platform.
- Python (X, Y): Python distribution version for scientific applications, based on QT and SPYDER.
- PythonLibs: Non -official Windows platform Python extended binary bag.
- Pythonnet: Integration of Python and .NET Public Language Runners (CLR).
- Pywin32: Python extension for Windows.
- Winpython: portable development environment under Windows 7/8 system.
Network visualization and SDN
Tools and libraries for network visualization and SDN (software definition network).
- Mininet: A popular network simulator and API written in Python.
- POX: An open source development platform for Python -based software -based software -defined network applications (such as OpenFlow SDN controller).
- Pyretic: A member of the fiery SDN programming language provides strong abstract capabilities for network switches and simulators.
- SDX PLATFORM: IXP implementation based on SDN affects MININT, POX and Pyretic.
- NRU: A component -based software defines the network framework.
- Napalm: It can manipulate network devices across supplier APIs.
hardware
The library used to program hardware.
- INO: The command line tool to operate Arduino.
- Pyro: Python Robot Programming Library.
- Pyuserinput: Cross -platform modules control the mouse and keyboard.
- Scapy: A great operation of the database of the packet.
- WIFI: A Python library and command line tools are used to operate WIFI on the Linux platform.
- Pingo: PINGO provides uniform APIs for programming for Raspberry Pi, PCDuino, Intel Galileo and other devices.
- Keyboard: Hook on Windows and Linux and simulate the global keyboard incident.
- Mouse: Hook on Windows and Linux and simulate the global mouse event.
compatibility
Help libraries from Python 2 to Python 3.
- Python-Future: This is the compatibility layer lost between Python 2 and Python 3.
- SIX: Python 2 and 3 compatibility tools.
- Modernize: Makes Python code more modernized so that it can eventually migrate to Python 3.
Algorithm and design mode
Python implementation of data structure, algorithm and design pattern. You can also refer to AWESOME-Algorithms.
- algorithm
- Algorithms: simple examples of data structure and algorithm.
- Python-DS: The collection of data structures and algorithms used for interviews.
- SortedContainers: Sorting the fast pure Python implementation.
- Thealgorithms: Python implementation of all algorithms.
- design pattern
- PypattyRN: A simple and effective library, used to achieve common design patterns.
- Python-Patterns: A python design mode collection.
- Transitions: Lightweight, object -oriented limited state machine implementation.
Enhanced version of built -in class implementation
Some Python built -in enhanced version implementation libraries.
- ATTRS: A model that can replace
__init__
, __eq__
, __repr__
and other methods during class definition. - BIDICT: The two -way mapping data structure and related functions of Pythonic.
- BOX: Python dictionary with high -level symbol access permissions.
- DataCLASSES: (Python Standard Library) data class.
- DottedDict: Library provides a method that uses the method of access to the list and dictionary.
robot
Robot -related library.
- Pythonrobotics: Summary of various robot algorithms with visual effects.
- Rospy: ROS (Robot Operation System) library.
chat tool
Chat robot development related libraries.
- ERRBOT: The simplest and most popular chat robot to implement Chatops.
Editor plug -in and IDE
- Emacs
- Elpy: Emacs Python development environment.
- Sublime Text
- Anaconda: Anaconda can convert the full -featured Python development IDE to Sublime Text 3.
- Sublimejedi: A great automatic completing the Sublime Text plug -in.
- vim
- Jedi-Vim: Jedi used for Python automatically replenish the VIM binding of the library.
- Python-Mode: A multi-in-one plug-in converting Vim into Python IDE.
- Youcompleteme: Python engine contains Jedi's completion.
- Visual Studio
- PTVS: Visual Studio Python tool.
- Visual Studio Code
- Python: Official VSCode extension with rich support for Python.
- IDE
- Pycharm: The commercial Python IDE provided by Jetbrains also has a free community version.
- Spyder: Open source Python IDE.
Enterprise -level application integration
The platform and tools used in an enterprise -level environment.
- Zato: ESB, Soa, REST, APIS and Cloud Python integration.
Graphql
Graphql related library.
- Graphene: Python GraphQL framework.
- TARTIFLETTE-AIOHTTP: TARTIFLETTE-based decorative device, which is used to open up the GraphQL API through HTTP.
- TARTIFLETTE-Asgi: ASGI support of Tartiflette Graphql engine.
- TARTIFLETTE: The GraphQL engine supports Python 3.6+ and Asyncio's SDL priority.
Stock finance
- Quantaxis: Support task scheduling, distributed stock/futures/options/Hong Kong stock/virtual currency data data/recovery/simulation/transaction/visualization/multi -account pure localization solution
- ABU: Open source and quantitative transaction based on Python, quantitative investment architecture
- Hikyuu Quant: Open source quantitative trading research framework based on C ++/Python, for strategic analysis and recovery (only limited by data, can be used for futures, etc.)
- vnpy:基于Python的开源量化交易系统开发框架,整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用
Miscellaneous
不属于上面任何一个类别,但是非常有用的库。
- blinker:快速的Python 运行时信号/事件分配系统。
- boltons:一组纯Python 实用工具。
- itsdangerous:将受信任的数据传递到不受信任的环境的帮助工具。
- magenta:使用人工智能生成音乐与艺术的工具。
- pluginbase:一个简单但灵活的Python 插件系统。
- tryton:一个通用业务框架。