A curated list of awesome Python frameworks, libraries, software and resources.
Inspired by awesome-php.
- Awesome Python
- Environment Management
- Package Management
- Package Repositories
- Distribution
- Build Tools
- Interactive Interpreter
- Files
- Date and Time
- Text Processing
- Specific Formats Processing
- Natural Language Processing
- Documentation
- Configuration
- Command-line Tools
- Downloader
- Imagery
- OCR
- Audio
- Video
- Geolocation
- HTTP
- Database
- Database Drivers
- ORM
- Web Frameworks
- Serverless Frameworks
- Permissions
- CMS
- E-commerce
- RESTful API
- Serialization
- Authentication
- Template Engine
- Queue
- Search
- News Feed
- Asset Management
- Caching
- Internationalization
- URL Manipulation
- HTML Manipulation
- Web Crawling
- Web Content Extracting
- Forms
- Data Validation
- Anti-spam
- Tagging
- Admin Panels
- Static Site Generator
- Processes
- Concurrency and Parallelism
- Networking
- WebSocket
- WSGI Servers
- RPC Servers
- Cryptography
- GUI
- Game Development
- Logging
- Testing
- Code Analysis and Linter
- Debugging Tools
- Science and Data Analysis
- Data Visualization
- Computer Vision
- Machine Learning
- Functional Programming
- MapReduce
- Third-party APIs
- DevOps Tools
- ChatOps Tools
- Job Scheduler
- Foreign Function Interface
- High Performance
- Network Virtualization and SDN
- Hardware
- Compatibility
- Miscellaneous
- Algorithms and Design Patterns
- Editor Plugins
- IDEs
- Services
- Resources
- Other Awesome Lists
- Contributing
Environment Management
Libraries for Python version and environment management.- p - Dead simple interactive Python version management.
- pyenv - Simple Python version management.
- venv - (Python standard library in Python 3.3+) Creating lightweight virtual environments.
- virtualenv - A tool to create isolated Python environments.
- virtualenvwrapper - A set of extensions to virtualenv.
Package Management
Libraries for package and dependency management.- pip - The Python package and dependency manager.
- pip-tools - A set of tools to keep your pinned Python dependencies fresh.
- conda - Cross-platform, Python-agnostic binary package manager.
- Curdling - Curdling is a command line tool for managing Python packages.
- wheel - The new standard of Python distribution and are intended to replace eggs.
Package Repositories
Local PyPI repository server and proxies.- warehouse - Next generation Python Package Repository (PyPI).
- bandersnatch - PyPI mirroring tool provided by Python Packaging Authority (PyPA).
- devpi - PyPI server and packaging/testing/release tool.
- localshop - Local PyPI server (custom packages and auto-mirroring of pypi).
Distribution
Libraries to create packaged executables for release distribution.- PyInstaller - Converts Python programs into stand-alone executables (cross-platform).
- dh-virtualenv - Build and distribute a virtualenv as a Debian package.
- Nuitka - Compile scripts, modules, packages to an executable or extension module.
- py2app - Freezes Python scripts (Mac OS X).
- py2exe - Freezes Python scripts (Windows).
- pynsist - A tool to build Windows installers, installers bundle Python itself.
Build Tools
Compile software from source code.- buildout - A build system for creating, assembling and deploying applications from multiple parts.
- BitBake - A make-like build tool for embedded Linux.
- PlatformIO - A console tool to build code with different development platforms.
- PyBuilder - A continuous build tool written in pure Python.
- SCons - A software construction tool.
Interactive Interpreter
Interactive Python interpreters (REPL).- Jupyter Notebook (IPython) - A rich toolkit to help you make the most out of using Python interactively.
- bpython – A fancy interface to the Python interpreter.
- ptpython - Advanced Python REPL built on top of the python-prompt-toolkit.
Files
Libraries for file manipulation and MIME type detection.- imghdr - (Python standard library) Determine the type of an image.
- mimetypes - (Python standard library) Map filenames to MIME types.
- path.py - A module wrapper for os.path.
- pathlib - (Python standard library in Python 3.4+) An cross-platform, object-oriented path library.
- python-magic - A Python interface to the libmagic file type identification library.
- Unipath - An object-oriented approach to file/directory operations.
- watchdog - API and shell utilities to monitor file system events.
Date and Time
Libraries for working with dates and times.- arrow - Better dates & times for Python.
- Chronyk - A Python 3 library for parsing human-written times and dates.
- dateutil - Extensions to the standard Python datetime module.
- delorean - A library for clearing up the inconvenient truths that arise dealing with datetimes.
- moment - A Python library for dealing with dates/times. Inspired by Moment.js.
- PyTime - A easy-use Python module which aims to operate date/time/datetime by string.
- pytz - World timezone definitions, modern and historical. Brings the tz database into Python.
- when.py - Providing user-friendly functions to help perform common date and time actions.
Text Processing
Libraries for parsing and manipulating plain texts.- General
- chardet - Python 2/3 compatible character encoding detector.
- difflib - (Python standard library) Helpers for computing deltas.
- ftfy - Makes Unicode text less broken and more consistent automagically.
- fuzzywuzzy - Fuzzy String Matching.
- Levenshtein - Fast computation of Levenshtein distance and string similarity.
- pangu.py - Spacing texts for CJK and alphanumerics.
- pyfiglet - An implementation of figlet written in Python.
- shortuuid - A generator library for concise, unambiguous and URL-safe UUIDs.
- unidecode - ASCII transliterations of Unicode text.
- uniout - Print readable chars instead of the escaped string.
- xpinyin - A library to translate Chinese hanzi (漢字) to pinyin (拼音).
- Slugify
- awesome-slugify - A Python slugify library that can preserve unicode.
- python-slugify - A Python slugify library that translates unicode to ASCII.
- unicode-slugify - A slugifier that generates unicode slugs with Django as a dependency.
- Parser
- phonenumbers - Parsing, formatting, storing and validating international phone numbers.
- PLY - Implementation of lex and yacc parsing tools for Python
- Pygments - A generic syntax highlighter.
- pyparsing - A general purpose framework for generating parsers.
- python-nameparser - Parsing human names into their individual components.
- python-user-agents - Browser user agent parser.
- sqlparse - A non-validating SQL parser.
Specific Formats Processing
Libraries for parsing and manipulating specific text formats.- General
- tablib - A module for Tabular Datasets in XLS, CSV, JSON, YAML.
- Office
- Marmir - Takes Python data structures and turns them into spreadsheets.
- openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
- pyexcel - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and xlsm files.
- python-docx - Reads, queries and modifies Microsoft Word 2007/2008 docx files.
- relatorio - Templating OpenDocument files.
- unoconv - Convert between any document format supported by LibreOffice/OpenOffice.
- XlsxWriter - A Python module for creating Excel .xlsx files.
- xlwings - A BSD-licensed library that makes it easy to call Python from Excel and vice versa.
- xlwt / xlrd - Writing and reading data and formatting information from Excel files.
- Markdown
- Mistune - Fastest and full featured pure Python parsers of Markdown.
- Python-Markdown - A Python implementation of John Gruber’s Markdown.
- YAML
- PyYAML - YAML implementations for Python.
- CSV
- csvkit - Utilities for converting to and working with CSV.
- Archive
- unp - A command line tool that can unpack archives easily.
Natural Language Processing
Libraries for working with human languages.- NLTK - A leading platform for building Python programs to work with human language data.
- Pattern - A web mining module for the Python.
- Jieba - Chinese text segmentation.
- SnowNLP - A library for processing Chinese text.
- spaCy - A library for industrial-strength natural language processing in Python and Cython.
- TextBlob - Providing a consistent API for diving into common NLP tasks.
- TextGrocery - A simple, efficient short-text classification tool based on LibLinear and Jieba.
- langid.py - Stand-alone language identification system.
Documentation
Libraries for generating project documentation.- Sphinx - Python Documentation generator.
- MkDocs - Markdown friendly documentation generator.
- pdoc - Epydoc replacement to auto generate API documentation for Python libraries.
- Pycco - The literate-programming-style documentation generator.
Configuration
Libraries for storing and parsing configuration options.- config - Hierarchical config from the author of logging.
- ConfigObj - INI file parser with validation.
- ConfigParser - (Python standard library) INI file parser.
- profig - Config from multiple formats with value conversion.
- python-decouple - Strict separation of settings from code.
Command-line Tools
Libraries for building command-line application.- Command-line Application Development
- asciimatics - Cross-platform, full-screen terminal package (i.e. mouse/keyboard input and coloured, positioned text output) complete with high-level API for complex animations and special effects.
- cement - CLI Application Framework for Python.
- click - A package for creating beautiful command line interfaces in a composable way.
- cliff - A framework for creating command-line programs with multi-level commands.
- clint - Python Command-line Application Tools.
- colorama - Cross-platform colored terminal text.
- docopt - Pythonic command line arguments parser.
- Gooey - Turn command line programs into a full GUI application with one line
- python-prompt-toolkit - A Library for building powerful interactive command lines.
- Productivity Tools
- aws-cli - A universal command-line interface for Amazon Web Services.
- bashplotlib - Making basic plots in the terminal.
- caniusepython3 - Determine what projects are blocking you from porting to Python 3.
- cookiecutter - A command-line utility that creates projects from cookiecutters (project templates).
- doitlive - A tool for live presentations in the terminal.
- howdoi - Instant coding answers via the command line.
- httpie - A command line HTTP client, a user-friendly cURL replacement.
- PathPicker - Select files out of bash output.
- percol - Adds flavor of interactive selection to the traditional pipe concept on UNIX.
- SAWS - A Supercharged AWS CLI.
- thefuck - Correcting your previous console command.
- try - A dead simple CLI to try out python packages - It's never been easier.
- mycli - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
- pgcli - Postgres CLI with autocompletion and syntax highlighting.
Downloader
Libraries for downloading.- s3cmd - A command line tool for managing Amazon S3 and CloudFront.
- s4cmd - Super S3 command line tool, good for higher performance.
- you-get - A YouTube/Youku/Niconico video downloader written in Python 3.
- youtube-dl - A small command-line program to download videos from YouTube.
Imagery
Libraries for manipulating images.- pillow - Pillow is the friendly PIL fork.
- hmap - Image histogram remapping.
- imgSeek - A project for searching a collection of images using visual similarity.
- nude.py - Nudity detection.
- pyBarcode - Create barcodes in Python without needing PIL.
- pygram - Instagram-like image filters.
- python-qrcode - A pure Python QR Code generator.
- Quads - Computer art based on quadtrees.
- scikit-image - A Python library for (scientific) image processing.
- thumbor - A smart imaging service. It enables on-demand crop, re-sizing and flipping of images.
- wand - Python bindings for MagickWand, C API for ImageMagick.
OCR
Libraries for Optical Character Recognition.- pyocr - A wrapper for Tesseract and Cuneiform.
- pytesseract - Another wrapper for Google Tesseract OCR.
Audio
Libraries for manipulating audio.- audiolazy - Expressive Digital Signal Processing (DSP) package for Python.
- audioread - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
- beets - A music library manager and MusicBrainz tagger.
- dejavu - Audio fingerprinting and recognition.
- django-elastic-transcoder - Django + Amazon Elastic Transcoder.
- eyeD3 - A tool for working with audio files, specifically MP3 files containing ID3 metadata.
- id3reader - A Python module for reading MP3 meta data.
- m3u8 - A module for parsing m3u8 file.
- mutagen - A Python module to handle audio metadata.
- pydub - Manipulate audio with a simple and easy high level interface.
- pyechonest - Python client for the Echo Nest API.
- talkbox - A Python library for speech/signal processing.
- TimeSide - Open web audio processing framework.
- tinytag - A library for reading music meta data of MP3, OGG, FLAC and Wave files.
- mingus - An advanced music theory and notation package with MIDI file and playback support.
Video
Libraries for manipulating video and GIFs.- moviepy - A module for script-based movie editing with many formats, including animated GIFs.
- scikit-video - Video processing routines for SciPy.
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.- GeoDjango - A world-class geographic web framework.
- GeoIP - Python API for MaxMind GeoIP Legacy Database.
- geojson - Python bindings and utilities for GeoJSON.
- geopy - Python Geocoding Toolbox.
- pygeoip - Pure Python GeoIP API.
- django-countries - A Django app that provides country choices for use with forms, flag icons static files, and a country field for models.
HTTP
Libraries for working with HTTP.- requests - HTTP Requests for Humans™.
- grequests - requests + gevent for asynchronous HTTP requests.
- httplib2 - Comprehensive HTTP client library.
- treq - Python requests like API built on top of Twisted's HTTP client.
- urllib3 - A HTTP library with thread-safe connection pooling, file post support, sanity friendly.
Database
Databases implemented in Python.- pickleDB - A simple and lightweight key-value store for Python.
- PipelineDB - The Streaming SQL Database.
- TinyDB - A tiny, document-oriented database.
- ZODB - A native object database for Python. A key-value and object graph database.
Database Drivers
Libraries for connecting and operating databases.- MySQL - awesome-mysql
- mysql-python - The MySQL database connector for Python.
- mysqlclient - mysql-python fork supporting Python 3.
- oursql - A better MySQL connector with support for native prepared statements and BLOBs.
- PyMySQL - Pure Python MySQL driver compatible to mysql-python.
- PostgreSQL
- psycopg2 - The most popular PostgreSQL adapter for Python.
- queries - A wrapper of the psycopg2 library for interacting with PostgreSQL.
- txpostgres - Twisted based asynchronous driver for PostgreSQL.
- Other Relational Databases
- NoSQL Databases
- cassandra-python-driver - Python driver for Cassandra.
- HappyBase - A developer-friendly library for Apache HBase.
- Plyvel - A fast and feature-rich Python interface to LevelDB.
- py2neo - Python wrapper client for Neo4j's restful interface.
- pycassa - Python Thrift driver for Cassandra.
- PyMongo - The official Python client for MongoDB.
- redis-py - The Redis Python Client.
- telephus - Twisted based client for Cassandra.
- txRedis - Twisted based client for Redis.
ORM
Libraries that implement Object-Relational Mapping or data mapping techniques.- Relational Databases
- Django Models - A part of Django.
- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper.
- Peewee - A small, expressive ORM.
- PonyORM - ORM that provides a generator-oriented interface to SQL.
- python-sql - Write SQL queries pythonically.
- NoSQL Databases
- django-mongodb-engine - Django MongoDB Backend.
- PynamoDB - A Pythonic interface for Amazon DynamoDB.
- flywheel - Object mapper for Amazon DynamoDB.
- MongoEngine - A Python Object-Document-Mapper for working with MongoDB.
- hot-redis - Rich Python data types for Redis.
- redisco - A Python Library for Simple Models and Containers Persisted in Redis.
- Others
- butterdb - A Python ORM for Google Drive Spreadsheets.
Web Frameworks
Full stack web frameworks.- Django - The most popular web framework in Python.
- Flask - A microframework for Python.
- Pyramid - A small, fast, down-to-earth, open source Python web framework.
- Bottle - A fast, simple and lightweight WSGI micro web-framework.
- CherryPy - A minimalist Python web framework, HTTP/1.1-compliant and WSGI thread-pooled.
- TurboGears - A microframework that can scale up to a full stack solution.
- web.py - A web framework for Python that is as simple as it is powerful.
- web2py - A full stack web framework and platform focused in the ease of use.
- Tornado - A Web framework and asynchronous networking library.
Serverless Frameworks
Frameworks for developing serverless Python code.- apex - Build, deploy, and manage AWS Lambda functions with ease.
- Zappa - A tool for deploying WSGI applications on AWS Lambda and API Gateway.
- python-lambda - A toolkit for developing and deploying Python code in AWS Lambda.
Permissions
Libraries that allow or deny users access to data or functionality.- Carteblanche - Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.
- django-guardian - Implementation of per object permissions for Django 1.2+
- django-rules - A tiny but powerful app providing object-level permissions to Django, without requiring a database.
CMS
Content Management Systems.- django-cms - An Open source enterprise CMS based on the Django.
- djedi-cms - A lightweight but yet powerful Django CMS with plugins, inline editing and performance in mind.
- FeinCMS - One of the most advanced Content Management Systems built on Django.
- Kotti - A high-level, Pythonic web application framework built on Pyramid.
- Mezzanine - A powerful, consistent, and flexible content management platform.
- Opps - A Django-based CMS for magazines, newspapers websites and portals with high-traffic.
- Plone - A CMS built on top of the open source application server Zope.
- Quokka - Flexible, extensible, small CMS powered by Flask and MongoDB.
- Wagtail - A Django content management system.
- Widgy - Last CMS framework, based on Django.
E-commerce
Frameworks and libraries for e-commerce and payments.- django-oscar - An open-source e-commerce framework for Django.
- django-shop - A Django based shop system.
- Cartridge - A shopping cart app built using the Mezzanine.
- shoop - An open source E-Commerce platform based on Django.
- alipay - Unofficial Alipay API for Python.
- merchant - A Django app to accept payments from various payment processors.
- money - Money class with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution.
- python-currencies - Display money format and its filthy currencies.
RESTful API
Libraries for developing RESTful APIs.- Django
- django-rest-framework - A powerful and flexible toolkit to build web APIs.
- django-tastypie - Creating delicious APIs for Django apps.
- django-formapi - Create JSON APIs with Django's form validation.
- Flask
- flask-api - Browsable Web APIs for Flask.
- flask-restful - Quickly building REST APIs for Flask.
- flask-restless - Generating RESTful APIs for database models defined with SQLAlchemy.
- flask-api-utils - Taking care of API representation and authentication for Flask.
- eve - REST API framework powered by Flask, MongoDB and good intentions.
- Pyramid
- cornice - A RESTful framework for Pyramid.
- Framework agnostic
- falcon - A high-performance framework for building cloud APIs and web app backends.
- hug - A Python3 framework for cleanly exposing APIs over HTTP and the Command Line with automatic documentation and validation.
- sandman - Automated REST APIs for existing database-driven systems.
- restless - Framework agnostic REST framework based on lessons learned from Tastypie.
- ripozo - Quickly creating REST/HATEOAS/Hypermedia APIs.
Serialization
Libraries for serializing complex data types- marshmallow - marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.
Authentication
Libraries for implementing authentications schemes.- OAuth
- Authomatic - Simple but powerful framework agnostic authentication/authorization client.
- django-allauth - Authentication app for Django that "just works."
- django-oauth-toolkit - OAuth2 goodies for the Djangonauts.
- django-oauth2-provider - Providing OAuth2 access to Django app.
- Flask-OAuthlib - OAuth 1.0/a, 2.0 implementation of client and provider for Flask.
- OAuthLib - A generic and thorough implementation of the OAuth request-signing logic.
- python-oauth2 - A fully tested, abstract interface to creating OAuth clients and servers.
- python-social-auth - An easy-to-setup social authentication mechanism.
- rauth - A Python library for OAuth 1.0/a, 2.0, and Ofly.
- sanction - A dead simple OAuth2 client implementation.
- Others
- jose - JavaScript Object Signing and Encryption draft implementation.
- PyJWT - Implementation of the JSON Web Token draft 01.
- python-jws - Implementation of JSON Web Signatures draft 02.
- python-jwt - Module for generating and verifying JSON Web Tokens.
Template Engine
Libraries and tools for templating and lexing.- Jinja2 - A modern and designer friendly templating language.
- Genshi - Python templating toolkit for generation of web-aware output.
- Mako - Hyperfast and lightweight templating for the Python platform.
Queue
Libraries for working with event and task queues.- celery - An asynchronous task queue/job queue based on distributed message passing.
- huey - Little multi-threaded task queue.
- mrq - Mr. Queue - A distributed worker task queue in Python using Redis & gevent.
- rq - Simple job queues for Python.
- simpleq - A simple, infinitely scalable, Amazon SQS based queue.
Search
Libraries and software for indexing and performing search queries on data.- django-haystack - Modular search for Django.
- elasticsearch-py - The official low-level Python client for Elasticsearch.
- elasticsearch-dsl-py - The official high-level Python client for Elasticsearch.
- esengine - ElasticSearch ODM (Object Document Mapper) for Python.
- solrpy - A Python client for solr.
- Whoosh - A fast, pure Python search engine library.
News Feed
Libraries for building user's activities.- django-activity-stream - Generating generic activity streams from the actions on your site.
- Stream-Framework - Building newsfeed and notification systems using Cassandra and Redis.
Asset Management
Tools for managing, compressing and minifying website assets.- django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file.
- django-pipeline - An asset packaging library for Django.
- django-storages - A collection of custom storage back ends for Django.
- fanstatic - Packages, optimizes, and serves static file dependencies as Python packages.
- fileconveyor - A daemon to detect and sync files to CDNs, S3 and FTP.
- flask-assets - Helps you integrate webassets into your Flask app.
- jinja-assets-compressor - A Jinja extension to compile and compress your assets.
- webassets - Bundles, optimizes, and manages unique cache-busting URLs for static resources.
Caching
Libraries for caching data.- Beaker - A library for caching and sessions for use with web applications and stand-alone Python scripts and applications.
- django-cache-machine - Automatic caching and invalidation for Django models.
- django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
- django-viewlet - Render template parts with extended cache control.
- dogpile.cache - dogpile.cache is next generation replacement for Beaker made by same authors.
- HermesCache - Python caching library with tag-based invalidation and dogpile effect prevention.
- johnny-cache - A caching framework for django applications.
- pylibmc - A Python wrapper around the libmemcached interface.
- DiskCache - SQLite and file backed cache backend with faster lookups than memcached and redis.
- envelopes - Mailing for human beings.
- flanker - A email address and Mime parsing library.
- imbox - Python IMAP for Humans.
- inbox.py - Python SMTP Server for Humans.
- lamson - Pythonic SMTP Application Server.
- Marrow Mailer - High-performance extensible mail delivery framework.
- modoboa - A mail hosting and management platform including a modern and simplified Web UI.
- Nylas Sync Engine - Providing a RESTful API on top of a powerful email sync platform.
- yagmail - Yet another Gmail/SMTP client.
Internationalization
Libraries for working with i18n.- Babel - An internationalization library for Python.
- PyICU - A wrapper of International Components for Unicode C++ library (ICU).
URL Manipulation
Libraries for parsing URLs.- furl - A small Python library that makes manipulating URLs simple.
- purl - A simple, immutable URL class with a clean API for interrogation and manipulation.
- pyshorteners - A pure Python URL shortening lib.
- short_url - Python implementation for generating Tiny URL and bit.ly-like URLs.
- webargs - A friendly library for parsing HTTP request arguments, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, and Pyramid.
HTML Manipulation
Libraries for working with HTML and XML.- BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
- bleach - A whitelist-based HTML sanitization and text linkification library.
- cssutils - A CSS library for Python.
- html5lib - A standards-compliant library for parsing and serializing HTML documents and fragments.
- lxml - A very fast, easy-to-use and versatile library for handling HTML and XML.
- MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python.
- pyquery - A jQuery-like library for parsing HTML.
- untangle - Converts XML documents to Python objects for easy access.
- xhtml2pdf - HTML/CSS to PDF converter.
- xmldataset - Simple XML Parsing.
- xmltodict - Working with XML feel like you are working with JSON.
Web Crawling
Libraries for scraping websites.- Scrapy - A fast high-level screen scraping and web crawling framework.
- cola - A distributed crawling framework.
- Demiurge - PyQuery-based scraping micro-framework.
- feedparser - Universal feed parser.
- Grab - Site scraping framework.
- MechanicalSoup - A Python library for automating interaction with websites.
- portia - Visual scraping for Scrapy.
- pyspider - A powerful spider system.
- RoboBrowser - A simple, Pythonic library for browsing the web without a standalone web browser.
Web Content Extracting
Libraries for extracting web contents.- Haul - An Extensible Image Crawler.
- html2text - Convert HTML to Markdown-formatted text.
- lassie - Web Content Retrieval for Humans.
- micawber - A small library for extracting rich content from URLs.
- newspaper - News extraction, article extraction and content curation in Python.
- opengraph - A Python module to parse the Open Graph Protocol
- python-goose - HTML Content/Article Extractor.
- python-readability - Fast Python port of arc90's readability tool.
- sanitize - Bringing sanity to world of messed-up data.
- sumy - A module for automatic summarization of text documents and HTML pages.
- textract - Extract text from any document, Word, PowerPoint, PDFs, etc.
Forms
Libraries for working with forms.- Deform - Python HTML form generation library influenced by the formish form generation library.
- django-bootstrap3 - Bootstrap 3 integration with Django.
- django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant and DRY way.
- django-remote-forms - A platform independent Django form serializer.
- WTForms - A flexible forms validation and rendering library.
Data Validation
Libraries for validating data. Used for forms in many cases.- Schematics - Data Structure Validation.
- schema - A library for validating Python data structures.
- jsonschema - An implementation of JSON Schema for Python.
- Cerberus - A lightweight and extensible data validation library.
- colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.
- voluptuous - A Python data validation library.
- valideer - Lightweight extensible data validation and adaptation library.
Anti-spam
Libraries for fighting spam.- django-simple-captcha - A simple and highly customizable Django app to add captcha images to any Django form.
- django-simple-spam-blocker - Simple spam blocker for Django.
Tagging
Libraries for tagging items.- django-taggit - Simple tagging for Django.
Admin Panels
Libraries for administrative interfaces.- Ajenti - The admin panel your servers deserve.
- django-suit - Alternative Django Admin-Interface (free only for Non-commercial use).
- django-xadmin - Drop-in replacement of Django admin comes with lots of goodies.
- flask-admin - Simple and extensible administrative interface framework for Flask.
- flower - Real-time monitor and web admin for Celery.
- Grappelli – A jazzy skin for the Django Admin-Interface.
- Wooey - A Django app which creates automatic web UIs for Python scripts.
Static Site Generator
Static site generator is a software that takes some text + templates as input and produces HTML files on the output.- Pelican - Uses Markdown or ReST for content and Jinja 2 for themes. Supports DVCS, Disqus. AGPL.
- Cactus – Static site generator for designers.
- Hyde - Jinja2-based static web site generator.
- Nikola - A static website and blog generator.
- Tinkerer - Tinkerer is a blogging engine/.static website generator powered by Sphinx.
- Lektor - An easy to use static CMS and blog engine.
Processes
Libraries for starting and communicating with OS processes.- envoy - Python subprocess for Humans™.
- sarge - Yet another wrapper for subprocess.
- sh - A full-fledged subprocess replacement for Python.
Concurrency and Parallelism
Libraries for concurrent and parallel execution.- multiprocessing - (Python standard library) Process-based "threading" interface.
- threading - (Python standard library) Higher-level threading interface.
- eventlet - Asynchronous framework with WSGI support.
- gevent - A coroutine-based Python networking library that uses greenlet.
- Tomorrow - Magic decorator syntax for asynchronous code.
Networking
Libraries for networking programming.- asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.
- Twisted - An event-driven networking engine.
- pulsar - Event-driven concurrent framework for Python.
- diesel - Greenlet-based event I/O Framework for Python.
- pyzmq - A Python wrapper for the ZeroMQ message library.
- txZMQ - Twisted based wrapper for the ZeroMQ message library.
WebSocket
Libraries for working with WebSocket.- AutobahnPython - WebSocket & WAMP for Python on Twisted and asyncio.
- Crossbar - Open-source Unified Application Router (Websocket & WAMP for Python on Autobahn).
- django-socketio - WebSockets for Django.
- WebSocket-for-Python - WebSocket client and server library for Python 2 and 3 as well as PyPy.
WSGI Servers
WSGI-compatible web servers.- gunicorn - Pre-forked, partly written in C.
- uwsgi - A project aims at developing a full stack for building hosting services, written in C.
- bjoern - Asynchronous, very fast and written in C.
- fapws3 - Asynchronous (network side only), written in C.
- meinheld - Asynchronous, partly written in C.
- netius - Asynchronous, very fast.
- paste - Multi-threaded, stable, tried and tested.
- rocket - Multi-threaded.
- waitress - Multi-threaded, poweres Pyramid.
- Werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.
RPC Servers
RPC-compatible servers.- SimpleJSONRPCServer - This library is an implementation of the JSON-RPC specification.
- SimpleXMLRPCServer - (Python standard library) Simple XML-RPC server implementation, single-threaded.
- zeroRPC - zerorpc is a flexible RPC implementation based on ZeroMQ and MessagePack.
Cryptography
- cryptography - A package designed to expose cryptographic primitives and recipes to Python developers.
- hashids - Implementation of hashids in Python.
- Paramiko - A Python (2.6+, 3.3+) implementation of the SSHv2 protocol, providing both client and server functionality.
- Passlib - Secure password storage/hashing library, very high level.
- PyCrypto - The Python Cryptography Toolkit.
- PyNacl - Python binding to the Networking and Cryptography (NaCl) library.
GUI
Libraries for working with graphical user interface applications.- curses - Built-in wrapper for ncurses used to create terminal GUI applications.
- enaml - Creating beautiful user-interfaces with Declaratic Syntax like QML.
- kivy - A library for creating NUI applications, running on Windows, Linux, Mac OS X, Android and iOS.
- pyglet - A cross-platform windowing and multimedia library for Python.
- PyQt - Python bindings for the Qt cross-platform application and UI framework, with support for both Qt v4 and Qt v5 frameworks.
- PySide - Python bindings for the Qt cross-platform application and UI framework, supporting the Qt v4 framework.
- Tkinter - Tkinter is Python's de-facto standard GUI package.
- Toga - A Python native, OS native GUI toolkit.
- urwid - A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc.
- wxPython - A blending of the wxWidgets C++ class library with the Python.
- PyGObject - Python Bindings for GLib/GObject/GIO/GTK+ (GTK+3)
- Flexx - Flexx is a pure Python toolkit for creating GUI's, that uses web technology for its rendering.
Game Development
Awesome game development libraries.- Cocos2d - cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is based on pyglet.
- Panda3D - 3D game engine developed by Disney and maintained by Carnegie Mellon's Entertainment Technology Center. Written in C++, completely wrapped in Python.
- Pygame - Pygame is a set of Python modules designed for writing games.
- PyOgre - Python bindings for the Ogre 3D render engine, can be used for games, simulations, anything 3D.
- PyOpenGL - Python ctypes bindings for OpenGL and it's related APIs.
- PySDL2 - A ctypes based wrapper for the SDL2 library.
- RenPy - A Visual Novel engine.
Logging
Libraries for generating and working with logs.- logging - (Python standard library) Logging facility for Python.
- logbook - Logging replacement for Python.
- Eliot - Logging for complex & distributed systems.
- Raven - The Python client for Sentry.
- Sentry - A realtime logging and aggregation server.
Testing
Libraries for testing codebases and generating test data.- Testing Frameworks
- unittest - (Python standard library) Unit testing framework.
- nose - A nicer
unittest
for Python. - pytest - A mature full-featured Python testing tool.
- hypothesis - Hypothesis is an advanced Quickcheck style property based testing library.
- mamba - The definitive testing tool for Python. Born under the banner of BDD.
- Robot Framework - A generic test automation framework.
- Test Runners
- GUI / Web Testing
- Selenium - Python bindings for Selenium WebDriver.
- locust - Scalable user load testing tool written in Python.
- sixpack - A language-agnostic A/B Testing framework.
- splinter - Open source tool for testing web applications.
- PyAutoGUI - PyAutoGUI is a cross-platform GUI automation Python module for human beings.
- Mock
- mock - (Python standard library) A mocking and patching library.
- doublex - Powerful test doubles framework for Python.
- freezegun - Travel through time by mocking the datetime module.
- httmock - A mocking library for requests for Python 2.6+ and 3.2+.
- httpretty - HTTP request mock tool for Python.
- responses - A utility library for mocking out the requests Python library.
- VCR.py - Record and replay HTTP interactions on your tests.
- Object Factories
- factory_boy - A test fixtures replacement for Python.
- mixer - Another fixtures replacement. Supported Django, Flask, SQLAlchemy, Peewee and etc.
- model_mommy - Creating random fixtures for testing in Django.
- Code Coverage
- coverage - Code coverage measurement.
- Fake Data
- Error Handler
- FuckIt.py - FuckIt.py uses state-of-the-art technology to make sure your Python code runs whether it has any right to or not.
Code Analysis and Linter
Libraries and tools for analysing, parsing and manipulation codebases.- Code Analysis
- code2flow - Turn your Python and JavaScript code into DOT flowcharts.
- pycallgraph - A library that visualises the flow (call graph) of your Python application.
- pysonar2 - A type inferencer and indexer for Python.
- coala - Language independent and easily extendable code analysis application.
- Linter
Debugging Tools
Libraries for debugging code.- Debugger
- ipdb - IPython-enabled pdb.
- pudb – A full-screen, console-based Python debugger.
- pyringe - Debugger capable of attaching to and injecting code into Python processes.
- wdb - An improbable web debugger through WebSockets.
- winpdb - A Python Debugger with GUI, capable of remote debugging based on
rpdb2
. - django-debug-toolbar - Display various debug information for Django.
- django-devserver - A drop-in replacement for Django's runserver.
- flask-debugtoolbar - A port of the django-debug-toolbar to flask.
- Profiler
- line_profiler - Line-by-line profiling.
- memory_profiler - Monitor Memory usage of Python code.
- profiling - An interactive Python profiler.
- Others
- pyelftools - Parsing and analyzing ELF files and DWARF debugging information.
- python-statsd - Python Client for the statsd server.
Science and Data Analysis
Libraries for scientific computing and data analyzing.- astropy - A community Python library for Astronomy.
- bcbio-nextgen - A toolkit providing best-practice pipelines for fully automated high throughput sequencing analysis.
- bccb - Collection of useful code related to biological analysis.
- Biopython - Biopython is a set of freely available tools for biological computation.
- blaze - NumPy and Pandas interface to Big Data.
- cclib - A library for parsing and interpreting the results of computational chemistry packages.
- NetworkX - A high-productivity software for complex networks.
- Neupy - Running and testing different Artificial Neural Networks algorithms.
- NIPY - A collection of neuroimaging toolkits.
- Numba - Python JIT (just in time) complier to LLVM aimed at scientific Python by the developers of Cython and NumPy.
- NumPy - A fundamental package for scientific computing with Python.
- Open Babel - A chemical toolbox designed to speak the many languages of chemical data.
- Open Mining - Business Intelligence (BI) in Python (Pandas web interface)
- orange - Data mining, data visualization, analysis and machine learning through visual programming or Python scripting.
- Pandas - A library providing high-performance, easy-to-use data structures and data analysis tools.
- PyDy - Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion based around NumPy, SciPy, IPython, and matplotlib.
- PyMC - Markov Chain Monte Carlo sampling toolkit.
- RDKit - Cheminformatics and Machine Learning Software.
- SciPy - A Python-based ecosystem of open-source software for mathematics, science, and engineering.
- statsmodels - Statistical modeling and econometrics in Python.
- SymPy - A Python library for symbolic mathematics.
- zipline - A Pythonic algorithmic trading library.
Data Visualization
Libraries for visualizing data. See: awesome-javascript.- matplotlib - A Python 2D plotting library.
- bokeh - Interactive Web Plotting for Python.
- ggplot - Same API as ggplot2 for R.
- plotly - Collaborative web plotting for Python and matplotlib.
- pygal - A Python SVG Charts Creator.
- pygraphviz - Python interface to Graphviz.
- PyQtGraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
- SnakeViz - A browser based graphical viewer for the output of Python's cProfile module.
- vincent - A Python to Vega translator.
- VisPy - High-performance scientific visualization based on OpenGL.
Computer Vision
Libraries for computer vision.- OpenCV - Open Source Computer Vision Library.
- SimpleCV - An open source framework for building computer vision applications.
Machine Learning
Libraries for Machine Learning. See: awesome-machine-learning.- Crab - A flexible, fast recommender engine.
- gensim - Topic Modelling for Humans.
- hebel - GPU-Accelerated Deep Learning Library in Python.
- NuPIC - Numenta Platform for Intelligent Computing.
- pattern - Web mining module for Python.
- PyBrain - Another Python Machine Learning Library.
- Pylearn2 - A Machine Learning library based on Theano.
- python-recsys - A Python library for implementing a Recommender System.
- scikit-learn - A Python module for machine learning built on top of SciPy.
- pydeep - Deep learning in python
- vowpal_porpoise - A lightweight Python wrapper for Vowpal Wabbit.
- skflow - A simplified interface for TensorFlow (mimicking scikit-learn).
MapReduce
Frameworks and libraries for MapReduce.- dpark - Python clone of Spark, a MapReduce alike framework in Python.
- dumbo - Python module that allows one to easily write and run Hadoop programs.
- luigi - A module that helps you build complex pipelines of batch jobs.
- mrjob - Run MapReduce jobs on Hadoop or Amazon Web Services.
- PySpark - The Spark Python API.
- streamparse - Run Python code against real-time streams of data. Integrates with Apache Storm.
Functional Programming
Functional Programming with Python.- CyToolz - Cython implementation of Toolz: High performance functional utilities.
- fn.py - Functional programming in Python: implementation of missing features to enjoy FP.
- funcy - A fancy and practical functional tools.
- Toolz - A collection of functional utilities for iterators, functions, and dictionaries.
Third-party APIs
Libraries for accessing third party services APIs. See: List of Python API Wrappers and Libraries.- apache-libcloud - One Python library for all clouds.
- boto - Python interface to Amazon Web Services.
- django-wordpress - WordPress models and views for Django.
- facebook-sdk - Facebook Platform Python SDK.
- facepy - Facepy makes it really easy to interact with Facebook's Graph API
- gmail - A Pythonic interface for Gmail.
- google-api-python-client - Google APIs Client Library for Python.
- gspread - Google Spreadsheets Python API.
- twython - A Python wrapper for the Twitter API.
DevOps Tools
Software and libraries for DevOps.- Ansible - A radically simple IT automation platform.
- SaltStack - Infrastructure automation and management system.
- OpenStack - Open source software for building private and public clouds.
- Docker Compose - Fast, isolated development environments using Docker.
- Cloud-Init - A multi-distribution package that handles early initialization of a cloud instance.
- cuisine - Chef-like functionality for Fabric.
- Fabric - A simple, Pythonic tool for remote execution and deployment.
- Fabtools - Tools for writing awesome Fabric files.
- honcho - A Python clone of Foreman, for managing Procfile-based applications.
- pexpect - Controlling interactive programs in a pseudo-terminal like GNU expect.
- psutil - A cross-platform process and system utilities module.
- supervisor - Supervisor process control system for UNIX.
ChatOps Tools
Libraries for chatbot development.- Errbot - The easiest and most popular chatbot to implement ChatOps.
Job Scheduler
Libraries for scheduling jobs.- APScheduler - A light but powerful in-process task scheduler that lets you schedule functions.
- django-schedule - A calendaring app for Django.
- doit - A task runner and build tool.
- gunnery - Multipurpose task execution tool for distributed systems with web-based interface.
- Joblib - A set of tools to provide lightweight pipelining in Python.
- Plan - Writing crontab file in Python like a charm.
- schedule - Python job scheduling for humans.
- Spiff - A powerful workflow engine implemented in pure Python.
- TaskFlow - A Python library that helps to make task execution easy, consistent and reliable.
Foreign Function Interface
Libraries for providing foreign function interface.- cffi - Foreign Function Interface for Python calling C code.
- ctypes - (Python standard library) Foreign Function Interface for Python calling C code.
- PyCUDA - A Python wrapper for Nvidia's CUDA API.
- SWIG - Simplified Wrapper and Interface Generator.
High Performance
Libraries for making Python faster.- Cython - Optimizing Static Compiler for Python. Uses type mixins to compile Python into C or C++ modules resulting in large performance gains.
- PeachPy - x86-64 assembler embedded in Python. Can be used as inline assembler for Python or as a stand-alone assembler for Windows, Linux, OS X, Native Client and Go.
- PyPy - An implementation of Python in Python. The interpreter uses black magic to make Python very fast without having to add in additional type information.
- Pyston - A Python implementation built using LLVM and modern JIT techniques with the goal of achieving good performance.
- Stackless Python - An enhanced version of the Python.
Microsoft Windows
Python programming on Microsoft Windows.- Python(x,y) - Scientific-applications-oriented Python Distribution based on Qt and Spyder.
- pythonlibs - Unofficial Windows binaries for Python extension packages.
- PythonNet - Python Integration with the .NET Common Language Runtime (CLR).
- PyWin32 - Python Extensions for Windows.
- WinPython - Portable development environment for Windows 7/8.
Network Virtualization and SDN
Tools and libraries for Virtual Networking and SDN (Software Defined Networking).- Mininet - A popular network emulator and API written in Python.
- POX - An open source development platform for Python-based Software Defined Networking (SDN) control applications, such as OpenFlow SDN controllers.
- Pyretic - A member of the Frenetic family of SDN programming languages that provides powerful abstractions over network switches or emulators.
- SDX Platform - SDN based IXP implementation that leverages Mininet, POX and Pyretic.
Hardware
Libraries for programming with hardware.- ino - Command line toolkit for working with Arduino.
- Pyro - Python Robotics.
- PyUserInput - A module for cross-platform control of the mouse and keyboard.
- scapy - A brilliant packet manipulation library.
- wifi - A Python library and command line tool for working with WiFi on Linux.
- Pingo - Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel Galileo, etc.
Compatibility
Libraries for migrating from Python 2 to 3.- Python-Future - The missing compatibility layer between Python 2 and Python 3.
- Python-Modernize - Modernizes Python code for eventual Python 3 migration.
- Six - Python 2 and 3 compatibility utilities.
Miscellaneous
Useful libraries or tools that don't fit in the categories above.- blinker - A fast Python in-process signal/event dispatching system.
- itsdangerous - Various helpers to pass trusted data to untrusted environments.
- pluginbase - A simple but flexible plugin system for Python.
- Pychievements - A framework for creating and tracking achievements.
- Tryton - A general purpose business framework.
Algorithms and Design Patterns
Python implementation of algorithms and design patterns.- algorithms - A module of algorithms for Python.
- python-patterns - A collection of design patterns in Python.
- sortedcontainers - Fast, pure-Python implementation of SortedList, SortedDict, and SortedSet types.
Editor Plugins
Plugins for editors and IDEs.- Emacs
- Elpy - Emacs Python Development Environment.
- Sublime Text
- SublimeJEDI - A Sublime Text plugin to the awesome auto-complete library Jedi.
- Anaconda - Anaconda turns your Sublime Text 3 in a full featured Python development IDE.
- Vim
- YouCompleteMe - Includes Jedi-based completion engine for Python.
- Jedi-vim - Vim bindings for the Jedi auto-completion library for Python.
- Python-mode - An all in one plugin for turning Vim into a Python IDE.
- Visual Studio
- PTVS - Python Tools for Visual Studio.
IDEs
Popular Python IDEs.- PyCharm - Commercial Python IDE by JetBrains. Has free community edition available.
- LiClipse - Free polyglot IDE based on Eclipse. Uses PyDev for Python support.
- Spyder - Open Source Python IDE.
Services
Online tools and APIs to simplify development.Continuous Integration
See: awesome-CIandCD.- Travis CI - A popular CI service for your open source and private projects. (GitHub only)
- CircleCI - A CI service that can run very fast parallel testing. (GitHub only)
- Vexor CI - A continuous integration tool for private apps with pay-per-minute billing model.
- Wercker - A Docker-based platform for building and deploying applications and microservices.
Code Quality
- Codecov - Code coverage dashboard.
- Codacy - Automated Code Review to ship better code, faster. Free for Open Source.
- Landscape - Hosted continuous Python code metrics.
- QuantifiedCode - A data-driven, automated, continuous code review tool.
Resources
Where to discover new Python libraries.Websites
- r/Python
- /r/CoolGithubProjects
- Django Packages
- Full Stack Python
- Python 3 Wall of Superpowers
- Python Hackers
- Python ZEEF
- Trending Python repositories on GitHub today
- PyPI Ranking
- Awesome Python @LibHunt
Weekly
Podcasts
Other Awesome Lists
List of lists.- Python
- Monty FROM https://github.com/vinta/awesome-python
----------------------------------------------
环境管理
管理 Python 版本和环境的工具
- p:非常简单的交互式 python 版本管理工具。官网
- pyenv:简单的 Python 版本管理工具。官网
- Vex:可以在虚拟环境中执行命令。官网
- virtualenv:创建独立 Python 环境的工具。官网
- virtualenvwrapper:virtualenv 的一组扩展。官网
包管理
管理包和依赖的工具。
- pip:Python 包和依赖关系管理工具。官网
- pip-tools:保证 Python 包依赖关系更新的一组工具。官网
- conda:跨平台,Python 二进制包管理工具。官网
- Curdling:管理 Python 包的命令行工具。官网
- wheel:Python 分发的新标准,意在取代 eggs。官网
包仓库
本地 PyPI 仓库服务和代理。
- warehouse:下一代 PyPI。官网
- Warehouse:PyPA 提供的 PyPI 镜像工具。官网 bandersnatch
- devpi:PyPI 服务和打包/测试/分发工具。官网
- localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。官网
分发
打包为可执行文件以便分发。
- PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。官网
- dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。官网
- Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。官网
- py2app:将 Python 脚本变为独立软件包(Mac OS X)。官网
- py2exe:将 Python 脚本变为独立软件包(Windows)。官网
- pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。官网
构建工具
将源码编译成软件。
- buildout:一个构建系统,从多个组件来创建,组装和部署应用。官网
- BitBake:针对嵌入式 Linux 的类似 make 的构建工具。官网
- fabricate:对任何语言自动找到依赖关系的构建工具。官网
- PlatformIO:多平台命令行构建工具。官网
- PyBuilder:纯 Python 实现的持续化构建工具。官网
- SCons:软件构建工具。官网
交互式解析器
交互式 Python 解析器。
- IPython:功能丰富的工具,非常有效的使用交互式 Python。官网
- bpython:界面丰富的 Python 解析器。官网
- ptpython:高级交互式Python解析器, 构建于python-prompt-toolkit 之上。官网
文件
文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。
- imghdr:(Python 标准库)检测图片类型。官网
- mimetypes:(Python 标准库)将文件名映射为 MIME 类型。官网
- path.py:对 os.path 进行封装的模块。官网
- pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。官网
- python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。官网
- Unipath:用面向对象的方式操作文件和目录。官网
- watchdog:管理文件系统事件的 API 和 shell 工具官网
日期和时间
操作日期和时间的类库。
- arrow:更好的 Python 日期时间操作类库。官网
- Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。官网
- dateutil:Python datetime 模块的扩展。官网
- delorean:解决 Python 中有关日期处理的棘手问题的库。官网
- moment:一个用来处理时间和日期的Python库。灵感来自于Moment.js。官网
- PyTime:一个简单易用的Python模块,用于通过字符串来操作日期/时间。官网
- pytz:现代以及历史版本的世界时区定义。将时区数据库引入Python。官网
- when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。官网
文本处理
用于解析和操作文本的库。
- 通用
- chardet:字符编码检测器,兼容 Python2 和 Python3。官网
- difflib:(Python 标准库)帮助我们进行差异化比较。官网
- ftfy:让Unicode文本更完整更连贯。官网
- fuzzywuzzy:模糊字符串匹配。官网
- Levenshtein:快速计算编辑距离以及字符串的相似度。官网
- pangu.py:在中日韩语字符和数字字母之间添加空格。官网
- yfiglet-figlet:pyfiglet -figlet 的 Python实现。
- shortuuid:一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。官网
- unidecode:Unicode 文本的 ASCII 转换形式 。官网
- uniout:打印可读的字符,而不是转义的字符串。官网
- xpinyin:一个用于把汉字转换为拼音的库。官网
- Slug化
- 解析器
特殊文本格式处理
一些用来解析和操作特殊文本格式的库。
- 通用
- tablib:一个用来处理中表格数据的模块。官网
- Office
- Marmir:把输入的Python 数据结构转换为电子表单。官网
- openpyxl:一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。官网
- python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。官网
- unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。官网
- XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。官网
- xlwings:一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。官网
- xlwt:读写 Excel 文件的数据和格式信息。官网 / xlrd
- relatorio:模板化OpenDocument 文件。官网
- Markdown
- YAML
- PyYAML:Python 版本的 YAML 解析器。官网
- CSV
- csvkit:用于转换和操作 CSV 的工具。官网
- Archive
- unp:一个用来方便解包归档文件的命令行工具。官网
自然语言处理
用来处理人类语言的库。
- NLTK:一个先进的平台,用以构建处理人类语言数据的 Python 程序。官网
- jieba:中文分词工具。官网
- langid.py:独立的语言识别系统。官网
- Pattern:Python 网络信息挖掘模块。官网
- SnowNLP:一个用来处理中文文本的库。官网
- TextBlob:为进行普通自然语言处理任务提供一致的 API。官网
- TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。官网
文档
用以生成项目文档的库。
- Sphinx:Python 文档生成器。官网
- awesome-sphinxdoc:官网
- MkDocs:对 Markdown 友好的文档生成器。官网
- pdoc:一个可以替换Epydoc 的库,可以自动生成 Python 库的 API 文档。官网
- Pycco:文学编程(literate-programming)风格的文档生成器。官网
配置
用来保存和解析配置的库。
- config:logging 模块作者写的分级配置模块。官网
- ConfigObj:INI 文件解析器,带验证功能。官网
- ConfigParser:(Python 标准库) INI 文件解析器。官网
- profig:通过多种格式进行配置,具有数值转换功能。官网
- python-decouple:将设置和代码完全隔离。官网
命令行工具
用于创建命令行程序的库。
- 命令行程序开发
- 生产力工具
- aws-cli:Amazon Web Services 的通用命令行界面。官网
- bashplotlib:在终端中进行基本绘图。官网
- caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。官网
- cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。官网
- doitlive:一个用来在终端中进行现场演示的工具。官网
- howdoi:通过命令行获取即时的编程问题解答。官网
- httpie:一个命令行HTTP 客户端,cURL 的替代品,易用性更好。官网
- PathPicker:从bash输出中选出文件。官网
- percol:向UNIX shell 传统管道概念中加入交互式选择功能。官网
- SAWS:一个加强版的 AWS 命令行。官网
- thefuck:修正你之前的命令行指令。官网
- mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。官网
- pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能。官网
下载器
用来进行下载的库.
- s3cmd:一个用来管理Amazon S3 和 CloudFront 的命令行工具。官网
- s4cmd:超级 S3 命令行工具,性能更加强劲。官网
- you-get:一个 YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。官网
- youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。官网
图像处理
用来操作图像的库.
- pillow:Pillow 是一个更加易用版的 PIL。官网
- hmap:图像直方图映射。官网
- imgSeek:一个使用视觉相似性搜索一组图片集合的项目。官网
- nude.py:裸体检测。官网
- pyBarcode:不借助 PIL 库在 Python 程序中生成条形码。官网
- pygram:类似 Instagram 的图像滤镜。官网
- python-qrcode:一个纯 Python 实现的二维码生成器。官网
- Quads:基于四叉树的计算机艺术。官网
- scikit-image:一个用于(科学)图像处理的 Python 库。官网
- thumbor:一个小型图像服务,具有剪裁,尺寸重设和翻转功能。官网
- wand:MagickWand的Python 绑定。MagickWand 是 ImageMagick的 C API 。官网
OCR
光学字符识别库。
- pyocr:Tesseract 和 Cuneiform 的一个封装(wrapper)。官网
- pytesseract:Google Tesseract OCR 的另一个封装(wrapper)。官网
- python-tesseract - Google Tesseract OCR 的一个包装类。
音频
用来操作音频的库
- audiolazy:Python 的数字信号处理包。官网
- audioread:交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。官网
- beets:一个音乐库管理工具及 MusicBrainz 标签添加工具官网
- dejavu:音频指纹提取和识别官网
- django-elastic-transcoder:Django + Amazon Elastic Transcoder。官网
- eyeD3:一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。官网
- id3reader:一个用来读取 MP3 元数据的 Python 模块。官网
- m3u8:一个用来解析 m3u8 文件的模块。官网
- mutagen:一个用来处理音频元数据的 Python 模块。官网
- pydub:通过简单、简洁的高层接口来操作音频文件。官网
- pyechonest:Echo Nest API 的 Python 客户端官网
- talkbox:一个用来处理演讲/信号的 Python 库官网
- TimeSide:开源 web 音频处理框架。官网
- tinytag:一个用来读取MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。官网
- mingus:一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。官网
Video
用来操作视频和GIF的库。
地理位置
地理编码地址以及用来处理经纬度的库。
- GeoDjango:世界级地理图形 web 框架。官网
- GeoIP:MaxMind GeoIP Legacy 数据库的 Python API。官网
- geojson:GeoJSON 的 Python 绑定及工具。官网
- geopy:Python 地址编码工具箱。官网
- pygeoip:纯 Python GeoIP API。官网
- django-countries:一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。官网
HTTP
使用HTTP的库。
- requests:人性化的HTTP请求库。官网
- grequests:requests 库 + gevent ,用于异步 HTTP 请求.官网
- httplib2:全面的 HTTP 客户端库。官网
- treq:类似 requests 的Python API 构建于 Twisted HTTP 客户端之上。官网
- urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。官网
数据库
Python实现的数据库。
- pickleDB:一个简单,轻量级键值储存数据库。官网
- PipelineDB:流式 SQL 数据库。官网
- TinyDB:一个微型的,面向文档型数据库。官网
- ZODB:一个 Python 原生对象数据库。一个键值和对象图数据库。官网
数据库驱动
用来连接和操作数据库的库。
- ySQL:awesome-mysql系列
- mysql-python:Python 的 MySQL 数据库连接器。官网
- ysqlclient:mysql-python 分支,支持 Python 3。
- oursql:一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs.官网
- PyMySQL:纯 Python MySQL 驱动,兼容 mysql-python。官网
- PostgreSQL
- 其他关系型数据库
- NoSQL 数据库
- cassandra-python-driver:Cassandra 的 Python 驱动。官网
- HappyBase:一个为 Apache HBase 设计的,对开发者友好的库。官网
- Plyvel:一个快速且功能丰富的 LevelDB 的 Python 接口。官网
- py2neo:Neo4j restful 接口的Python 封装客户端。官网
- pycassa:Cassandra 的 Python Thrift 驱动。官网
- PyMongo:MongoDB 的官方 Python 客户端。官网
- redis-py:Redis 的 Python 客户端。官网
- telephus:基于 Twisted 的 Cassandra 客户端。官网
- txRedis:基于 Twisted 的 Redis 客户端。官网
ORM
实现对象关系映射或数据映射技术的库。
- 关系型数据库
- NoSQL 数据库
- 其他
- butterdb:Google Drive 电子表格的 Python ORM。官网
Web 框架
全栈 Web 框架。
- Django:Python 界最流行的 web 框架。官网
- Flask:一个 Python 微型框架。官网
- pyramid:一个小巧,快速,接地气的开源Python web 框架。
- Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。官网
- CherryPy:一个极简的 Python web 框架,服从 HTTP/1.1 协议且具有WSGI 线程池。官网
- TurboGears:一个可以扩展为全栈解决方案的微型框架。官网
- web.py:一个 Python 的 web 框架,既简单,又强大。官网
- web2py:一个全栈 web 框架和平台,专注于简单易用。官网
- Tornado:一个web 框架和异步网络库。官网
权限
允许或拒绝用户访问数据或功能的库。
- Carteblanche:Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.官网
- django-guardian:Django 1.2+ 实现了单个对象权限。官网
- django-rules:一个小巧但是强大的应用,提供对象级别的权限管理,且不需要使用数据库。官网
CMS
内容管理系统
- odoo-cms: 一个开源的,企业级 CMS,基于odoo。官网
- django-cms:一个开源的,企业级 CMS,基于 Django。官网
- djedi-cms:一个轻量级但却非常强大的 Django CMS ,考虑到了插件,内联编辑以及性能。官网
- FeinCMS:基于 Django 构建的最先进的内容管理系统之一。官网
- Kotti:一个高级的,Python 范的 web 应用框架,基于 Pyramid 构建。官网
- Mezzanine:一个强大的,持续的,灵活的内容管理平台。官网
- Opps:一个为杂志,报纸网站以及大流量门户网站设计的 CMS 平台,基于 Django。官网
- Plone:一个构建于开源应用服务器 Zope 之上的 CMS。官网
- Quokka:灵活,可扩展的小型 CMS,基于 Flask 和 MongoDB。官网
- Wagtail:一个 Django 内容管理系统。官网
- Widgy:最新的 CMS 框架,基于 Django。官网
电子商务
用于电子商务以及支付的框架和库。
- django-oscar:一个用于 Django 的开源的电子商务框架。官网
- django-shop:一个基于 Django 的店铺系统。官网
- Cartridge:一个基于 Mezzanine 构建的购物车应用。官网
- shoop:一个基于 Django 的开源电子商务平台。官网
- alipay:非官方的 Python 支付宝 API。官网
- merchant:一个可以接收来自多种支付平台支付的 Django 应用。官网
- money:货币类库with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution.官网
- python-currencies:显示货币格式以及它的数值。官网
RESTful API
用来开发RESTful APIs的库
- Django
- Flask
- Pyramid
- cornice:一个Pyramid 的 REST 框架 。官网
- 与框架无关的
验证
实现验证方案的库。
- OAuth
- Authomatic:简单但是强大的框架,身份验证/授权客户端。官网
- django-allauth:Django 的验证应用。官网
- django-oauth-toolkit:为 Django 用户准备的 OAuth2。官网
- django-oauth2-provider:为 Django 应用提供 OAuth2 接入。官网
- Flask-OAuthlib:OAuth 1.0/a, 2.0 客户端实现,供 Flask 使用。官网
- OAuthLib:一个 OAuth 请求-签名逻辑通用、 完整的实现。官网
- python-oauth2:一个完全测试的抽象接口。用来创建 OAuth 客户端和服务端。官网
- python-social-auth:一个设置简单的社会化验证方式。官网
- rauth:OAuth 1.0/a, 2.0, 和 Ofly 的 Python 库。官网
- sanction:一个超级简单的OAuth2 客户端实现。官网
- 其他
模板引擎
模板生成和词法解析的库和工具。
- Jinja2:一个现代的,对设计师友好的模板引擎。官网
- Chameleon:一个 HTML/XML 模板引擎。 模仿了 ZPT(Zope Page Templates), 进行了速度上的优化。官网
- Genshi:Python 模板工具,用以生成 web 感知的结果。官网
- Mako:Python 平台的超高速轻量级模板。官网
Queue
处理事件以及任务队列的库。
- celery:一个异步任务队列/作业队列,基于分布式消息传递。官网
- huey:小型多线程任务队列。官网
- mrq:Mr. Queue -一个 Python 的分布式 worker 任务队列, 使用 Redis 和 gevent。官网
- rq:简单的 Python 作业队列。官网
- simpleq:一个简单的,可无限扩张的,基于亚马逊 SQS 的队列。官网
搜索
对数据进行索引和执行搜索查询的库和软件。
- django-haystack:Django 模块化搜索。官网
- elasticsearch-py:Elasticsearch 的官方底层 Python 客户端。官网
- elasticsearch-dsl-py:Elasticsearch 的官方高级 Python 客户端。官网
- solrpy:solr的 Python 客户端。官网
- Whoosh:一个快速的纯 Python 搜索引擎库。官网
动态消息
用来创建用户活动的库。
资源管理
管理、压缩、缩小网站资源的工具。
- django-compressor:将链接和内联的 JavaScript 或 CSS 压缩到一个单独的缓存文件中。官网
- django-storages:一个针对 Django 的自定义存储后端的工具集合。官网
- fanstatic:打包、优化,并且把静态文件依赖作为 Python 的包来提供。官网
- File Conveyor:一个后台驻留的程序,用来发现和同步文件到 CDNs, S3 和 FTP。官网
- Flask-Assets:帮你将 web 资源整合到你的 Flask app 中。官网
- jinja-assets-compressor:一个 Jinja 扩展,用来编译和压缩你的资源。官网
- webassets:为你的静态资源打包、优化和管理生成独一无二的缓存 URL。官网
缓存
缓存数据的库。
- Beaker:一个缓存和会话库,可以用在 web 应用和独立 Python脚本和应用上。官网
- django-cache-machine:Django 模型的自动缓存和失效。官网
- django-cacheops:具有自动颗粒化事件驱动失效功能的 ORM。官网
- django-viewlet:渲染模板,同时具有额外的缓存控制功能。官网
- dogpile.cache:dogpile.cache 是 Beaker 的下一代替代品,由同一作者开发。官网
- HermesCache:Python 缓存库,具有基于标签的失效和 dogpile effect 保护功能。官网
- johnny-cache:django应用缓存框架。官网
- pylibmc:libmemcached 接口的 Python 封装。官网
电子邮件
用来发送和解析电子邮件的库。
- django-celery-ses:带有 AWS SES 和 Celery 的 Django email 后端。官网
- envelopes:供人类使用的电子邮件库。官网
- flanker:一个 email 地址和 Mime 解析库。官网
- imbox:Python IMAP 库官网
- inbox.py:Python SMTP 服务器。官网
- inbox:一个开源电子邮件工具箱。官网
- lamson:Python 风格的 SMTP 应用服务器。官网
- mailjet:Mailjet API 实现,用来提供批量发送邮件,统计等功能。官网
- marrow.mailer:高性能可扩展邮件分发框架。官网
- modoboa:一个邮件托管和管理平台,具有现代的、简约的 Web UI。官网
- pyzmail:创建,发送和解析电子邮件。官网
- Talon:Mailgun 库,用来抽取信息和签名。官网
国际化
用来进行国际化的库。
URL处理
解析URLs的库
- furl:一个让处理 URL 更简单小型 Python 库。官网
- purl:一个简单的,不可变的URL类,具有简洁的 API 来进行询问和处理。官网
- pyshorteners:一个纯 Python URL 缩短库。官网
- shorturl:生成短小 URL 和类似 bit.ly 短链的Python 实现。官网
- webargs:一个解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado和 Pyramid。官网
HTML处理
处理 HTML和XML的库。
- BeautifulSoup:以 Python 风格的方式来对 HTML 或 XML 进行迭代,搜索和修改。官网
- bleach:一个基于白名单的 HTML 清理和文本链接库。官网
- cssutils:一个 Python 的 CSS 库。官网
- html5lib:一个兼容标准的 HTML 文档和片段解析及序列化库。官网
- lxml:一个非常快速,简单易用,功能齐全的库,用来处理 HTML 和 XML。官网
- MarkupSafe:为Python 实现 XML/HTML/XHTML 标记安全字符串。官网
- pyquery:一个解析 HTML 的库,类似 jQuery。官网
- untangle:将XML文档转换为Python对象,使其可以方便的访问。官网
- xhtml2pdf:HTML/CSS 转 PDF 工具。官网
- xmltodict:像处理 JSON 一样处理 XML。官网
爬取网络站点的库
- Scrapy:一个快速高级的屏幕爬取及网页采集框架。官网
- cola:一个分布式爬虫框架。官网
- Demiurge:基于PyQuery 的爬虫微型框架。官网
- feedparser:通用 feed 解析器。官网
- Grab:站点爬取框架。官网
- MechanicalSoup:用于自动和网络站点交互的 Python 库。官网
- portia:Scrapy 可视化爬取。官网
- pyspider:一个强大的爬虫系统。官网
- RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。官网
网页内容提取
用于进行网页内容提取的库。
- Haul:一个可以扩展的图像爬取工具。官网
- html2text:将 HTML 转换为 Markdown 格式文本官网
- lassie:人性化的网页内容检索库。官网
- micawber:一个小型网页内容提取库,用来从 URLs 提取富内容。官网
- newspaper:使用 Python 进行新闻提取,文章提取以及内容策展。官网
- opengraph:一个用来解析开放内容协议(Open Graph Protocol)的 Python模块。官网
- python-goose:HTML内容/文章提取器。官网
- python-readability:arc90 公司 readability 工具的 Python 高速端口。官网
- sanitize:为杂乱的数据世界带来调理性。官网
- sumy:一个为文本文件和 HTML 页面进行自动摘要的模块。官网
- textract:从任何格式的文档中提取文本,Word,PowerPoint,PDFs 等等。官网
表单
进行表单操作的库。
- Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发。官网
- django-bootstrap3:集成了 Bootstrap 3 的 Django。官网
- django-crispy-forms:一个 Django 应用,他可以让你以一种非常优雅且 DRY(Don't repeat yourself) 的方式来创建美观的表单。官网
- django-remote-forms:一个平台独立的 Django 表单序列化工具。官网
- WTForms:一个灵活的表单验证和呈现库。官网
- WTForms-JSON:一个 WTForms 扩展,用来处理 JSON 数据。官网
数据验证
数据验证库。多用于表单验证。
- Cerberus:A mappings-validator with a variety of rules, normalization-features and simple customization that uses a pythonic schema-definition.官网
- colander:一个用于对从 XML, JSON,HTML 表单获取的数据或其他同样简单的序列化数据进行验证和反序列化的系统。官网
- kmatch:一种用于匹配/验证/筛选 Python 字典的语言。官网
- schema:一个用于对 Python 数据结构进行验证的库。官网
- Schematics:数据结构验证。官网
- valideer:轻量级可扩展的数据验证和适配库。官网
- voluptuous:一个 Python 数据验证库。主要是为了验证传入 Python的 JSON,YAML 等数据。官网
反垃圾技术
帮助你和电子垃圾进行战斗的库。
- django-simple-captcha:一个简单、高度可定制的Django 应用,可以为任何Django表单添加验证码。官网
- django-simple-spam-blocker:一个用于Django的简单的电子垃圾屏蔽工具。官网
标记
用来进行标记的库。
- django-taggit:简单的 Django 标记工具。官网
管理面板
管理界面库。
- Ajenti:一个你的服务器值得拥有的管理面板。官网
- django-suit:Django 管理界面的一个替代品 (仅对于非商业用途是免费的)。官网
- django-xadmin:Django admin 的一个替代品,具有很多不错的功能。官网
- flask-admin:一个用于 Flask 的简单可扩展的管理界面框架。官网
- flower:一个对 Celery 集群进行实时监控和提供 web 管理界面的工具。官网
- Grappelli:Django 管理界面的一个漂亮的皮肤。官网
- Wooey:一个 Django 应用,可以为 Python 脚本创建 web 用户界面。官网
静态站点生成器
静态站点生成器是一个软件,它把文本和模板作为输入,然后输出HTML文件。
- Pelican:使用 Markdown 或 ReST 来处理内容, Jinja 2 来制作主题。支持 DVCS, Disqus.。AGPL 许可。官网
- Cactus:为设计师设计的静态站点生成器。官网
- Hyde:基于 Jinja2 的静态站点生成器。官网
- Nikola:一个静态网站和博客生成器。官网
- Tinkerer:Tinkerer 是一个博客引擎/静态站点生成器,由Sphinx驱动。官网
- Lektor:一个简单易用的静态 CMS 和博客引擎。官网
进程
操作系统进程启动及通信库。
- envoy:比 Python subprocess 模块更人性化。官网
- sarge:另一 种 subprocess 模块的封装。官网
- sh:一个完备的 subprocess 替代库。官网
并发和并行
用以进行并发和并行操作的库。
- multiprocessing:(Python 标准库) 基于进程的“线程”接口。官网
- threading:(Python 标准库)更高层的线程接口。官网
- eventlet:支持 WSGI 的异步框架。官网
- gevent:一个基于协程的 Python 网络库,使用greenlet。官网
- Tomorrow:用于产生异步代码的神奇的装饰器语法实现。官网
网络
用于网络编程的库。
- asyncio:(Python 标准库) 异步 I/O, 事件循环, 协程以及任务。官网
- Twisted:一个事件驱动的网络引擎。官网
- pulsar:事件驱动的并发框架。官网
- diesel:基于Greenlet 的事件 I/O 框架。官网
- pyzmq:一个 ZeroMQ 消息库的 Python 封装。官网
- txZMQ:基于 Twisted 的 ZeroMQ 消息库的 Python 封装。官网
WebSocket
帮助使用WebSocket的库。
- AutobahnPython:给 Python 、使用的 WebSocket & WAMP 基于 Twisted 和 asyncio。官网
- Crossbar:开源统一应用路由(Websocket & WAMP for Python on Autobahn).官网
- django-socketio:给 Django 用的 WebSockets。官网
- WebSocket-for-Python:为Python2/3 以及 PyPy 编写的 WebSocket 客户端和服务器库。官网
WSGI 服务器
兼容 WSGI 的 web 服务器
- gunicorn:Pre-forked, 部分是由 C 语言编写的。官网
- uwsgi:uwsgi 项目的目的是开发一组全栈工具,用来建立托管服务, 由 C 语言编写。官网
- bjoern:异步,非常快速,由 C 语言编写。官网
- fapws3:异步 (仅对于网络端),由 C 语言编写。官网
- meinheld:异步,部分是由 C 语言编写的。官网
- netius:异步,非常快速。官网
- paste:多线程,稳定,久经考验。官网
- rocket:多线程。官网
- waitress:多线程, 是它驱动着 Pyramid 框架。官网
- Werkzeug:一个 WSGI 工具库,驱动着 Flask ,而且可以很方便大嵌入到你的项目中去。官网
RPC 服务器
兼容 RPC 的服务器。
- SimpleJSONRPCServer:这个库是 JSON-RPC 规范的一个实现。官网
- SimpleXMLRPCServer:(Python 标准库) 简单的 XML-RPC 服务器实现,单线程。官网
- zeroRPC:zerorpc 是一个灵活的 RPC 实现,基于 ZeroMQ 和 MessagePack。官网
密码学
- cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者。官网
- hashids:在 Python 中实现 hashids 。官网
- Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能。官网
- Passlib:安全密码存储/哈希库,官网
- PyCrypto:Python 密码学工具箱。官网
- PyNacl:网络和密码学(NaCl) 库的 Python 绑定。官网
图形用户界面
用来创建图形用户界面程序的库。
- curses:内建的 ncurses 封装,用来创建终端图形用户界面。官网
- enaml:使用类似 QML 的Declaratic语法来创建美观的用户界面。官网
- kivy:一个用来创建自然用户交互(NUI)应用程序的库,可以运行在 Windows, Linux, Mac OS X, Android 以及 iOS平台上。官网
- pyglet:一个Python 的跨平台窗口及多媒体库。官网
- PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持Qt v4 和 Qt v5。官网
- PySide:P跨平台用户界面框架 Qt 的 Python 绑定 ,支持Qt v4。官网
- Tkinter:Tkinter 是 Python GUI 的一个事实标准库。官网
- Toga:一个 Python 原生的, 操作系统原生的 GUI 工具包。官网
- urwid:一个用来创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等。官网
- wxPython:wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物。官网
- PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定官网
- Flexx:Flexx 是一个纯 Python 语言编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。官网
游戏开发
超赞的游戏开发库。
- Cocos2d:cocos2d 是一个用来开发 2D 游戏, 示例和其他图形/交互应用的框架。基于 pyglet。官网
- Panda3D:由迪士尼开发的 3D 游戏引擎,并由卡内基梅陇娱乐技术中心负责维护。使用C++编写, 针对 Python 进行了完全的封装。官网
- Pygame:Pygame 是一组 Python 模块,用来编写游戏。官网
- PyOgre:Ogre 3D 渲染引擎的 Python 绑定,可以用来开发游戏和仿真程序等任何 3D 应用。官网
- PyOpenGL:OpenGL 的 Python 绑定及其相关 APIs。官网
- PySDL2:SDL2 库的封装,基于 ctypes。官网
- RenPy:一个视觉小说(visual novel)引擎。官网
日志
用来生成和操作日志的库。
- logging:(Python 标准库) 为 Python 提供日志功能。官网
- logbook:Logging 库的替代品。官网
- Eliot:为复杂的和分布式系统创建日志。官网
- Raven:Sentry的 Python 客户端。官网
- Sentry:实时记录和收集日志的服务器。官网
Testing
进行代码库测试和生成测试数据的库。
- 测试框架
- unittest:(Python 标准库) 单元测试框架。官网
- nose:nose 扩展了 unittest 的功能。官网
- contexts:一个 Python 3.3+ 的 BDD 框架。受到C#
- hypothesis:Hypothesis 是一个基于先进的 Quickcheck 风格特性的测试库。官网
- mamba:Python 的终极测试工具, 拥护BDD。官网
- PyAutoGUI:PyAutoGUI 是一个人性化的跨平台 GUI 自动测试模块。官网
- pyshould:Should 风格的断言,基于 PyHamcrest。官网
- pytest:一个成熟的全功能 Python 测试工具。官网
- green:干净,多彩的测试工具。官网
- pyvows:BDD 风格的测试工具,受Vows.js的启发。官网-
- Robot Framework:一个通用的自动化测试框架。官网
- Web 测试
- Mock测试
- 对象工厂
- 代码覆盖率
- coverage:代码覆盖率测量。官网
- 伪数据
- 错误处理
- FuckIt.py:FuckIt.py 使用最先进的技术来保证你的 Python 代码无论对错都能继续运行。官网
代码分析和Lint工具
进行代码分析,解析和操作代码库的库和工具。
- 代码分析
- Lint工具
- 代码格式化
- autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。官网
Debugging Tools
用来进行代码调试的库。
- 调试器
- ipdb:IPython 启用的 pdb。官网
- pudb:全屏,基于控制台的 Python 调试器。官网
- pyringe:可以在 Python 进程中附加和注入代码的调试器。官网
- wdb:一个奇异的 web 调试器,通过 WebSockets 工作。官网
- winpdb:一个具有图形用户界面的 Python 调试器,可以进行远程调试,基于 rpdb2。官网
- django-debug-toolbar:为 Django 显示各种调试信息。官网
- django-devserver:一个 Django 运行服务器的替代品。官网
- flask-debugtoolbar:django-debug-toolbar 的 flask 版。官网
- 性能分析器
- 其他
Science and Data Analysis
用来进行科学计算和数据分析的库。
- astropy:一个天文学 Python 库。官网
- bcbio-nextgen:这个工具箱为全自动高通量测序分析提供符合最佳实践的处理流程。官网
- bccb:生物分析相关代码集合官网
- Biopython:Biopython 是一组可以免费使用的用来进行生物计算的工具。官网
- blaze:NumPy 和 Pandas 的大数据接口。官网
- cclib:一个用来解析和解释计算化学软件包输出结果的库。官网
- NetworkX:一个为复杂网络设计的高性能软件。官网
- Neupy:执行和测试各种不同的人工神经网络算法。官网
- Numba:Python JIT (just in time) 编译器,针对科学用的 Python ,由Cython 和 NumPy 的开发者开发。官网
- NumPy:使用 Python 进行科学计算的基础包。官网
- Open Babel:一个化学工具箱,用来描述多种化学数据。官网
- Open Mining:使用 Python 挖掘商业情报 (BI) (Pandas web 接口)。官网
- orange:通过可视化编程或 Python 脚本进行数据挖掘,数据可视化,分析和机器学习。官网
- Pandas:提供高性能,易用的数据结构和数据分析工具。官网
- PyDy:PyDy 是 Python Dynamics 的缩写,用来为动力学运动建模工作流程提供帮助, 基于 NumPy, SciPy, IPython 和 matplotlib。官网
- PyMC:马尔科夫链蒙特卡洛采样工具。官网
- RDKit:化学信息学和机器学习软件。官网
- SciPy:由一些基于 Python ,用于数学,科学和工程的开源软件构成的生态系统。官网
- statsmodels:统计建模和计量经济学。官网
- SymPy:一个用于符号数学的 Python 库。官网
- zipline:一个 Python 算法交易库。官网
数据可视化
进行数据可视化的库。 参见: awesome-javascript。
- matplotlib:一个 Python 2D 绘图库。官网
- bokeh:用 Python 进行交互式 web 绘图。官网
- ggplot:ggplot2 给 R 提供的 API 的 Python 版本。官网
- plotly:协同 Python 和 matplotlib 工作的 web 绘图库。官网
- pygal:一个 Python SVG 图表创建工具。官网
- pygraphviz:Graphviz 的 Python 接口。官网
- PyQtGraph:交互式实时2D/3D/图像绘制及科学/工程学组件。官网
- SnakeViz:一个基于浏览器的 Python's cProfile 模块输出结果查看工具。官网
- vincent:把 Python 转换为 Vega 语法的转换工具。官网
- VisPy:基于 OpenGL 的高性能科学可视化工具。官网
计算机视觉
计算机视觉库。
机器学习
机器学习库。 参见: awesome-machine-learning.
- Crab:灵活、快速的推荐引擎。官网
- gensim:人性化的话题建模库。官网
- hebel:GPU 加速的深度学习库。官网
- NuPIC:智能计算 Numenta 平台。官网
- pattern:Python 网络挖掘模块。官网
- PyBrain:另一个 Python 机器学习库。官网
- Pylearn2:一个基于 Theano 的机器学习库。官网
- python-recsys:一个用来实现推荐系统的 Python 库。官网
- scikit-learn:基于 SciPy 构建的机器学习 Python 模块。官网
- pydeep:Python 深度学习库。官网
- vowpalporpoise:轻量级 Vowpal Wabbit 的 Python 封装。官网
- skflow:一个 TensorFlow 的简化接口(模仿 scikit-learn)。官网
MapReduce
MapReduce 框架和库。
- dpark:Spark 的 Python 克隆版,一个类似 MapReduce 的框架。官网
- dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序。官网
- luigi:这个模块帮你构建批处理作业的复杂流水线。官网
- mrjob:在 Hadoop 或 Amazon Web Services 上运行 MapReduce 任务。官网
- PySpark:Spark 的 Python API 。官网
- streamparse:运行针对事实数据流的 Python 代码。集成了Apache Storm。官网
函数式编程
使用 Python 进行函数式编程。
- CyToolz:Toolz 的 Cython 实现 : 高性能函数式工具。官网
- fn.py:在 Python 中进行函数式编程 : 实现了一些享受函数式编程缺失的功能。官网
- funcy:炫酷又实用的函数式工具。官网
- Toolz:一组用于迭代器,函数和字典的函数式编程工具。官网
第三方 API
用来访问第三方 API的库。 参见: List of Python API Wrappers and Libraries。
- apache-libcloud:一个为各种云设计的 Python 库。官网
- boto:Amazon Web Services 的 Python 接口。官网
- django-wordpress:WordPress models and views for Django.官网
- facebook-sdk:Facebook 平台的 Python SDK.官网
- facepy:Facepy 让和 Facebook's Graph API 的交互变得更容易。官网
- gmail:Gmail 的 Python 接口。官网
- google-api-python-client:Python 用的 Google APIs 客户端库。官网
- gspread:Google 电子表格的 Python API.官网
- twython:Twitter API 的封装。官网
DevOps 工具
用于 DevOps 的软件和库。
- Ansible:一个非常简单的 IT 自动化平台。官网
- SaltStack:基础设施自动化和管理系统。官网
- OpenStack:用于构建私有和公有云的开源软件。官网
- Docker Compose:快速,分离的开发环境,使用 Docker。官网
- Fabric:一个简单的,Python 风格的工具,用来进行远程执行和部署。官网
- cuisine:为 Fabric 提供一系列高级函数。官网
- Fabtools:一个用来编写超赞的 Fabric 文件的工具。官网
- gitapi:Git 的纯 Python API。官网
- hgapi:Mercurial 的纯 Python API。官网
- honcho:Foreman的 Python 克隆版,用来管理基于Procfile的应用。官网
- pexpect:Controlling interactive programs in a pseudo-terminal like 在一个伪终端中控制交互程序,就像 GNU expect 一样。官网
- psutil:一个跨平台进程和系统工具模块。官网
- supervisor:UNIX 的进程控制系统。官网
任务调度
任务调度库。
- APScheduler:轻巧但强大的进程内任务调度,使你可以调度函数。官网
- django-schedule:一个 Django 排程应用。官网
- doit:一个任务执行和构建工具。官网
- gunnery:分布式系统使用的多用途任务执行工具 ,具有 web 交互界面。官网
- Joblib:一组为 Python 提供轻量级作业流水线的工具。官网
- Plan:如有神助地编写 crontab 文件。官网
- schedule:人性化的 Python 任务调度库。官网
- Spiff:使用纯 Python 实现的强大的工作流引擎。官网
- TaskFlow:一个可以让你方便执行任务的 Python 库,一致并且可靠。官网
外来函数接口
使用外来函数接口的库。
- cffi:用来调用 C 代码的外来函数接口。官网
- ctypes:(Python 标准库) 用来调用 C 代码的外来函数接口。官网
- PyCUDA:Nvidia CUDA API 的封装。官网
- SWIG:简化的封装和接口生成器。官网
高性能
让 Python 更快的库。
- Cython:优化的 Python 静态编译器。使用类型混合使 Python 编译成 C 或 C++ 模块来获得性能的极大提升。官网
- PeachPy:嵌入 Python 的 x86-64 汇编器。可以被用作 Python 内联的汇编器或者是独立的汇编器,用于 Windows, Linux, OS X, Native Client 或者 Go 。官网
- PyPy:使用 Python 实现的 Python。解释器使用黑魔法加快 Python 运行速度且不需要加入额外的类型信息。官网
- Pyston:使用 LLVM 和现代 JIT 技术构建的 Python 实现,目标是为了获得很好的性能。官网
- Stackless Python:一个强化版的 Python。官网
微软的 Windows平台
在 Windows 平台上进行 Python 编程。
- Python(x,y):面向科学应用的 Python 发行版,基于 Qt 和 Spyder。官网
- pythonlibs:非官方的 Windows 平台 Python 扩展二进制包。官网
- PythonNet:Python 与 .NET 公共语言运行库 (CLR)的集成。官网
- PyWin32:针对 Windows 的Python 扩展。官网
- WinPython:Windows 7/8 系统下便携式开发环境。官网
网络可视化和SDN
用来进行网络可视化和SDN(软件定义网络)的工具和库。
- Mininet:一款流行的网络模拟器以及用 Python 编写的 API。官网
- POX:一个针对基于 Python 的软件定义网络应用(例如 OpenFlow SDN 控制器)的开源开发平台。官网
- Pyretic:火热的 SDN 编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力。官网
- SDX Platform:基于 SDN 的 IXP 实现,影响了 Mininet, POX 和 Pyretic。官网
硬件
用来对硬件进行编程的库。
- ino:操作Arduino的命令行工具。官网
- Pyro:Python 机器人编程库。官网
- PyUserInput:跨平台的,控制鼠标和键盘的模块。官网
- scapy:一个非常棒的操作数据包的库。官网
- wifi:一个 Python 库和命令行工具用来在 Linux 平台上操作WiFi。官网
- Pingo:Pingo 为类似Raspberry Pi,pcDuino, Intel Galileo等设备提供统一的API用以编程。官网
兼容性
帮助从 Python 2 向 Python 3迁移的库。
- Python-Future:这就是 Python 2 和 Python 3 之间丢失的那个兼容性层。官网
- Python-Modernize:使 Python 代码更加现代化以便最终迁移到 Python 3。官网
- Six:Python 2 和 3 的兼容性工具。官网
杂项
不属于上面任何一个类别,但是非常有用的库。
- blinker:一个快速的 Python 进程内信号/事件分发系统。官网
- itsdangerous:一系列辅助工具用来将可信的数据传入不可信的环境。官网
- pluginbase:一个简单但是非常灵活的 Python 插件系统。官网
- Pychievements:一个用来创建和追踪成就的 Python 框架。官网
- Tryton:一个通用商务框架。官网
算法和设计模式
Python 实现的算法和设计模式。
- algorithms:一个 Python 算法模块。官网
- python-patterns:Python 设计模式的集合。官网
- sortedcontainers:快速,纯 Python 实现的SortedList,SortedDict 和 SortedSet 类型。官网
编辑器插件
编辑器和 IDE 的插件
- Emacs
- Elpy:Emacs Python 开发环境。官网
- Sublime Text
- Vim
- YouCompleteMe:引入基于 Jedi 的 Python 自动补全引擎。官网
- Jedi-vim:绑定 Vim 和 Jedi 自动补全库对 Python 进行自动补全。官网
- Python-mode:将 Vim 变成 Python IDE 的一款多合一插件。官网
- Visual Studio
- PTVS:Visual Studio 的 Python 工具官网
集成开发环境
流行的 Python 集成开发环境。
- PyCharm:商业化的 Python IDE ,由 JetBrains 开发。也有免费的社区版提供。官网
- LiClipse:基于 Eclipse 的免费多语言 IDE 。使用 PyDev 来支持 Python 。官网
- Spyder:开源 Python IDE。官网
服务
在线工具和简化开发的 API 。
持续集成
参见: awesome-CIandCD.
- Travis CI:一个流行的工具,为你的开源和私人项目提供持续集成服务。(仅支持 GitHub)官网
- CircleCI:一个持续集成工具,可以非常快速的进行并行测试。 (仅支持 GitHub)官网
- Vexor CI:一个为私人 app 提供持续集成的工具,支持按分钟付费。官网
- Wercker:基于 Docker 平台,用来构建和部署微服务。官网
代码质量
资源
在这里可以找到新的 Python 库。
网站
- r/Python
- CoolGithubProjects
- Django Packages
- Full Stack Python
- Python 3 Wall of Superpowers
- Python Hackers
- Python ZEEF
- Trending Python repositories on GitHub today
- PyPI Ranking
周刊
学习指南
- Scipy-lecture-notes:如何用Python来做学术?官网
- SScientific-python-lectures:Python科学计算的资料。官网
- Mario-Level-1:用Python和Pygame写的超级马里奥第一关。官网
- Python Koans:Python的交互式学习工具。官网
- Minecraft:用python写的Minecraft游戏。官网
- pycrumbs:Python资源大全。官网
- python-patterns:使用python实现设计模式。官网
- Projects:Python项目大集合。官网
- The Hitchhiker’s Guide to Python:旅行者的Python学习指南。官网
- Code Like a Pythonista: Idiomatic Python:如何像Python高手(Pythonista)一样编程。官网
知名网站
值得关注的 Python 技术站点。
中文站点
- 伯乐在线 Python 频道:分享 Python 开发技术、相关的行业动态。官网
英文站点
微博、微信公众号
- Python开发者 微博:@Python开发者
- Python开发者:人生苦短,我用 Python。Python 越来越受广大程序员的喜爱。「Python开发者」是最受欢迎的、专注分享Python技术的微信公众号,主要分享 Python 相关的技术文章、工具资源和资讯等。
from https://github.com/jobbole/awesome-python-cn
--------------------------------
from http://hao.jobbole.com/?catid=144
开发工具
更多 »Jedi
一个超级棒的Python自动补全库SublimeREPL
在Sublime Text 2中运行解释器python-mode
Python的Vim插件Autopep8
按PEP8风格自动排版Python代码PyMongo
MongoDB数据库的Python接口程序pyenv
简单的Python版本管理工具
学习指南
更多 »pycrumbs
Python资源大全Projects
Python项目大集合python-patterns
使用python实现设计模式The Hitchhiker’s Guide to Python
旅行者的Python学习指南Minecraft
用python写的Minecraft游戏Python Koans
Python的交互式学习工具
文本处理
更多 »Python-docx
读写word文档的Python库SnowNLP
处理中文文本的Python库Fuzzywuzzy
字符串模糊匹配工具TextBlob
简单、Pythonic的文本分析工具Chardet
通用编码检测器