Awesome Python1 PDF
Awesome Python1 PDF
Awesome Python
Life is short, you need Python.
Awesome Python
Table of contents
Admin Panels
Algorithms and Design Patterns
A curated list of awesome Python frameworks, libraries, software and resources. ASGI Servers
Asynchronous Programming
Inspired by awesome-php.
Audio
Authentication
Build Tools
wooey - A Django app which creates automatic web UIs for Python scripts.
PyPattyrn - A simple yet effective library for implementing common design patterns.
python-ds - Clean and simple collection of data structure and algorithms in Python for coding
interviews.
ASGI Servers
ASGI-compatible web servers.
uvicorn - Uvicorn is a lightning-fast ASGI server implementation, using uvloop and httptools.
Asynchronous Programming
asyncio - (Python standard library) Asynchronous I/O, event loop, coroutines and tasks.
awesome-asyncio
Audio
Libraries for manipulating audio and its metadata.
Audio
mingus - An advanced music theory and notation package with MIDI le and playback
support.
pydub - Manipulate audio with a simple and easy high level interface.
Metadata
eyeD3 - A tool for working with audio les, speci cally MP3 les containing ID3
metadata.
tinytag - A library for reading music meta data of MP3, OGG, FLAC and Wave les.
Authentication
Libraries for implementing authentications schemes.
OAuth
python-oauth2 - A fully tested, abstract interface to creating OAuth clients and servers.
JWT
Build Tools
Compile software from source code.
buildout - A build system for creating, assembling and deploying applications from multiple
parts.
attrs - Replacement for __init__ , __eq__ , __repr__ , etc. boilerplate in class de nitions.
bidict - E cient, Pythonic bidirectional map data structures and related functionality..
DottedDict - A library that provides a method of accessing lists and dicts with a dotted path
notation.
CMS
Content Management Systems.
feincms - One of the most advanced Content Management Systems built on Django.
plone - A CMS built on top of the open source application server Zope.
Caching
Libraries for caching data.
HermesCache - Python caching library with tag-based invalidation and dogpile effect
prevention.
python-diskcache - SQLite and le backed cache backend with faster lookups than
memcached and redis.
ChatOps Tools
Libraries for chatbot development.
Code Analysis
Tools of static analysis, linters and code quality checkers. Also see awesome-static-analysis.
Code Analysis
code2 ow - Turn your Python and JavaScript code into DOT owcharts.
pycallgraph - A library that visualises the ow (call graph) of your Python application.
Code Linters
awesome- ake8-extensions
Code Formatters
MonkeyType - A system for Python that generates static type annotations by collecting
runtime types
click - A package for creating beautiful command line interfaces in a composable way.
python- re - A library for creating command line interfaces from absolutely any Python
object.
Terminal Rendering
asciimatics - A package to create full-screen text UIs (from interactive forms to ASCII
animations).
rich - Python library for rich text and beautiful formatting in the terminal. Also provides a
great RichHandler log handler.
Command-line Tools
Useful CLI-based tools for productivity.
Productivity Tools
percol - Adds avor of interactive selection to the traditional pipe concept on UNIX.
try - A dead simple CLI to try out python packages - it's never been easier.
CLI Enhancements
Compatibility
Libraries for migrating from Python 2 to 3.
Computer Vision
Libraries for Computer Vision.
tesserocr - A simple, Pillow-friendly, wrapper around the tesseract-ocr API for OCR.
Con guration
Libraries for storing and parsing con guration options.
Cryptography
cryptography - A package designed to expose cryptographic primitives and recipes to Python
developers.
Data Analysis
Libraries for data analyzing.
Orange - Data mining, data visualization, analysis and machine learning through visual
programming or scripts.
Pandas - A library providing high-performance, easy-to-use data structures and data analysis
tools.
Optimus - Agile Data Science Work ows made easy with PySpark.
Data Validation
Libraries for validating data. Used for forms in many cases.
colander - Validating and deserializing data obtained via XML, JSON, an HTML form post.
Data Visualization
Libraries for visualizing data. Also see awesome-javascript.
Dash - Built on top of Flask, React and Plotly aimed at analytical web applications.
awesome-dash
Database
Databases implemented in Python.
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
PostgreSQL - awesome-postgres
NoSQL Databases
Asynchronous Clients
Arrow - A Python library that offers a sensible and human-friendly approach to creating,
manipulating, formatting and converting dates, times and timestamps.
delorean - A library for clearing up the inconvenient truths that arise dealing with datetimes.
pytz - World timezone de nitions, modern and historical. Brings the tz database into Python.
when.py - Providing user-friendly functions to help perform common date and time actions.
Debugging Tools
Libraries for debugging code.
pdb-like Debugger
Tracing
manhole - Debugging UNIX socket connections and present the stacktraces for all
threads and an interactive prompt.
pyringe - Debugger capable of attaching to and injecting code into Python processes.
Pro ler
Others
icecream - Inspect variables, expressions, and program execution with a single, simple
function call.
pyelftools - Parsing and analyzing ELF les and DWARF debugging information.
Deep Learning
Frameworks for Neural Networks and Deep Learning. Also see awesome-deep-learning.
keras - A high-level neural networks library and capable of running on top of either
TensorFlow or Theano.
mxnet - A deep learning framework designed for both e ciency and exibility.
pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.
SerpentAI - Game agent framework. Use any video game as a deep learning sandbox.
DevOps Tools
Software and libraries for DevOps.
OpenStack - Open source software for building private and public clouds.
Distributed Computing
Frameworks and libraries for Distributed Computing.
Batch Processing
luigi - A module that helps you build complex pipelines of batch jobs.
Ray - A system for parallel and distributed Python that uni es the machine learning
ecosystem.
Stream Processing
faust - A stream processing library, porting the ideas from Kafka Streams to Python.
streamparse - Run Python code against real-time streams of data via Apache Storm.
Distribution
Libraries to create packaged executables for release distribution.
pyarmor - A tool used to obfuscate python scripts, bind obfuscated scripts to xed machine
or expire obfuscated scripts.
shiv - A command line utility for building fully self-contained zipapps (PEP 441), but with all
their dependencies included.
Documentation
Libraries for generating project documentation.
awesome-sphinxdoc
pdoc - Epydoc replacement to auto generate API documentation for Python libraries.
Downloader
Libraries for downloading.
E-commerce
Frameworks and libraries for e-commerce and payments.
money - Money class with optional CLDR-backed locale-aware formatting and an extensible
currency exchange.
forex-python - Foreign exchange rates, Bitcoin price index and currency conversion.
Sublime Text
anaconda - Anaconda turns your Sublime Text 3 in a full featured Python development
IDE.
Vim
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
Python - The o cial VSCode extension with rich support for Python.
IDE
PyCharm - Commercial Python IDE by JetBrains. Has free community edition available.
Email
Libraries for sending and parsing email.
Mail Servers
modoboa - A mail hosting and management platform including a modern Web UI.
Clients
Others
Environment Management
Libraries for Python version and virtual environment management.
Files
Libraries for le manipulation and MIME type detection.
ctypes - (Python standard library) Foreign Function Interface for Python calling C code.
Forms
Libraries for working with forms.
Deform - Python HTML form generation library in uenced by the formish form generation
library.
django-crispy-forms - A Django app which lets you create beautiful forms in a very elegant
and DRY way.
Functional Programming
Functional Programming with Python.
Coconut - A variant of Python built for simple, elegant, Pythonic functional programming.
GUI Development
Libraries for working with graphical user interface applications.
curses - Built-in wrapper for ncurses used to create terminal GUI applications.
Eel - A library for making simple Electron-like o ine HTML/JS GUI apps.
Flexx - Flexx is a pure Python toolkit for creating GUI's, that uses web technology for its
rendering.
Gooey - Turn command line programs into a full GUI application with one line.
kivy - A library for creating NUI applications, running on Windows, Linux, Mac OS X, Android
and iOS.
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.
GraphQL
Libraries for working with GraphQL.
tarti ette - SDL- rst GraphQL engine implementation for Python 3.6+ and asyncio.
tarti ette-aiohttp - An aiohttp -based wrapper for Tarti ette to expose GraphQL APIs over
HTTP.
tarti ette-asgi - ASGI support for the Tarti ette GraphQL engine.
Game Development
Awesome game development libraries.
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.
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
django-countries - A Django app that provides a country eld for models and forms.
HTML Manipulation
Libraries for working with HTML and XML.
BeautifulSoup - Providing Pythonic idioms for iterating, searching, and modifying HTML or
XML.
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.
WeasyPrint - A visual rendering engine for HTML and CSS that can export to PDF.
xmltodict - Working with XML feel like you are working with JSON.
HTTP Clients
Libraries for working with HTTP.
treq - Python requests like API built on top of Twisted's HTTP client.
urllib3 - A HTTP library with thread-safe connection pooling, le post support, sanity friendly.
Hardware
Libraries for programming with hardware.
keyboard - Hook and simulate global keyboard events on Windows and Linux.
mouse - Hook and simulate global mouse events on Windows and Linux.
Pingo - Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel
Galileo, etc.
wi - A Python library and command line tool for working with WiFi on Linux.
Image Processing
Libraries for manipulating images.
pagan - Retro identicon (Avatar) generation based on input string and hash.
thumbor - A smart imaging service. It enables on-demand crop, re-sizing and ipping of
images.
Implementations
Implementations of Python.
CPython - Default, most widely used implementation of the Python programming language
written in C.
Grumpy - More compiler than interpreter as more powerful CPython2.7 replacement (alpha).
Jython - Implementation of Python programming language written in Java for the JVM.
Interactive Interpreter
Interactive Python interpreters (REPL).
Jupyter Notebook (IPython) - A rich toolkit to help you make the most out of using Python
interactively.
awesome-jupyter
Internationalization
Libraries for working with i18n.
Job Scheduler
Libraries for scheduling jobs.
APScheduler - A light but powerful in-process task scheduler that lets you schedule
functions.
gunnery - Multipurpose task execution tool for distributed systems with web-based interface.
TaskFlow - A Python library that helps to make task execution easy, consistent and reliable.
Air ow - Air ow is a platform to programmatically author, schedule and monitor work ows.
Logging
Libraries for generating and working with logs.
raven - Python client for Sentry, a log/error tracking, crash reporting and aggregation
platform for web applications.
Machine Learning
Libraries for Machine Learning. Also see awesome-machine-learning.
Microsoft Windows
Python programming on Microsoft Windows.
PythonNet - Python Integration with the .NET Common Language Runtime (CLR).
Miscellaneous
Useful libraries or tools that don't t in the categories above.
General
nltk - A leading platform for building Python programs to work with human language
data.
PyTorch-NLP - A toolkit enabling rapid deep learning NLP prototyping for research.
Stanza - The Stanford NLP Group's o cial Python library, supporting 60+ languages.
Chinese
Network Virtualization
Tools and libraries for Virtual Networking and SDN (Software De ned Networking).
News Feed
Libraries for building user's activities.
django-activity-stream - Generating generic activity streams from the actions on your site.
Stream Framework - Building news feed and noti cation systems using Cassandra and
Redis.
ORM
Libraries that implement Object-Relational Mapping or data mapping techniques.
Relational Databases
awesome-sqlalchemy
dataset - Store Python dicts in a database - works with SQLite, MySQL, and PostgreSQL.
orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.
NoSQL Databases
redisco - A Python Library for Simple Models and Containers Persisted in Redis.
Package Management
Libraries for package and dependency management.
PyPI
Package Repositories
Local PyPI repository server and proxies.
Permissions
Libraries that allow or deny users access to data or functionality.
django-rules - A tiny but powerful app providing object-level permissions to Django, without
requiring a database.
Processes
Libraries for starting and communicating with OS processes.
Recommender Systems
Libraries for building recommender systems.
Refactoring
Refactoring tools and libraries for Python
Bicycle Repair Man - Bicycle Repair Man, a refactoring tool for Python.
RESTful API
Libraries for building RESTful APIs.
Django
Flask
eve - REST API framework powered by Flask, MongoDB and good intentions.
Pyramid
Framework agnostic
falcon - A high-performance framework for building cloud APIs and web app backends.
fastapi - A modern, fast, web framework for building APIs with Python 3.6+ based on
standard Python type hints.
sanic - A Python 3.6+ web server and web framework that's written to go fast.
Robotics
Libraries for robotics.
RPC Servers
RPC-compatible servers.
RPyC (Remote Python Call) - A transparent and symmetric RPC library for Python
Science
Libraries for scienti c computing. Also see Python-for-Scientists
cclib - A library for parsing and interpreting the results of computational chemistry packages.
Karate Club - Unsupervised machine learning toolbox for graph structured data.
Open Babel - A chemical toolbox designed to speak the many languages of chemical data.
PyDy - Short for Python Dynamics, used to assist with work ow in the modeling of dynamic
motion.
Search
Libraries and software for indexing and performing search queries on data.
Serialization
Libraries for serializing complex data types
marshmallow - A lightweight library for converting complex objects to and from simple
Python datatypes.
ultrajson - A fast JSON decoder and encoder written in C with Python bindings.
Serverless Frameworks
Frameworks for developing serverless Python code.
python-lambda - A toolkit for developing and deploying Python code in AWS Lambda.
Zappa - A tool for deploying WSGI applications on AWS Lambda and API Gateway.
General
O ce
openpyxl - A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm les.
pyexcel - Providing one API for reading, manipulating and writing csv, ods, xls, xlsx and
xlsm les.
python-docx - Reads, queries and modi es Microsoft Word 2007/2008 docx les.
python-pptx - Python library for creating and updating PowerPoint (.pptx) les.
unoconv - Convert between any document format supported by LibreO ce/OpenO ce.
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 les.
Markdown
YAML
CSV
Archive
pelican - Static site generator that supports Markdown and reST syntax.
Tagging
Libraries for tagging items.
Task Queues
Libraries for working with task queues.
mrq - A distributed worker task queue in Python using Redis & gevent.
Template Engine
Libraries and tools for templating and lexing.
Testing
Libraries for testing codebases and generating test data.
Testing Frameworks
Test Runners
mamba - The de nitive testing tool for Python. Born under the banner of BDD.
Mock
httmock - A mocking library for requests for Python 2.6+ and 3.2+.
responses - A utility library for mocking out the requests Python library.
Object Factories
Code Coverage
Fake Data
Text Processing
Libraries for parsing and manipulating plain texts.
General
ftfy - Makes Unicode text less broken and more consistent automagically.
Slugify
Parser
Third-party APIs
Libraries for accessing third party services APIs. Also see List of Python API Wrappers and
Libraries.
URL Manipulation
Libraries for parsing URLs.
furl - A small Python library that makes parsing and manipulating URLs easy.
purl - A simple, immutable URL class with a clean API for interrogation and manipulation.
webargs - A friendly library for parsing HTTP request arguments with built-in support for
popular web frameworks.
Video
Libraries for manipulating video and GIFs.
moviepy - A module for script-based movie editing with many formats, including animated
GIFs.
django-compressor - Compresses linked and inline JavaScript or CSS into a single cached
le.
webassets - Bundles, optimizes, and manages unique cache-busting URLs for static
resources.
sumy - A module for automatic summarization of text documents and HTML pages.
textract - Extract text from any document, Word, PowerPoint, PDFs, etc.
Web Crawling
Libraries to automate web scraping.
robobrowser - A simple, Pythonic library for browsing the web without a standalone web
browser.
Web Frameworks
Traditional full stack web frameworks. Also see RESTful API
Synchronous
awesome-django
awesome-django
awesome- ask
awesome-pyramid
Asynchronous
WebSocket
Libraries for working with WebSocket.
websockets - A library for building WebSocket servers and clients with a focus on
correctness and simplicity.
WSGI Servers
WSGI-compatible web servers.
uWSGI - A project aims at developing a full stack for building hosting services, written in C.
werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded
into your own projects.
Resources
Podcasts
From Python Import Podcast
Podcast.init
Python Bytes
Python Testing
Talk Python To Me
Twitter
@codetengu
@getpy
@importpython
@planetpython
@pycoders
@pypi
@pythontrending
@PythonWeekly
@TalkPython
@realpython
Websites
/r/CoolGithubProjects
/r/Python
Django Packages
Python Cheatsheet
Python ZEEF
Python 开发社区
Real Python
Pythonic News
Weekly
CodeTengu Weekly 碼天狗週刊
Pycoder's Weekly
Python Weekly
Python Tricks
Contributing
Your contributions are always welcome! Please take a look at the contribution guidelines rst.
I will keep some pull requests open if I'm not sure whether those libraries are awesome, you
could vote for them by adding :+1: to them. Pull requests will be merged when their votes reach
20.
If you have any question about this opinionated list, do not hesitate to contact me @vinta on
Twitter or open an issue on GitHub.