Python常用库汇总

GitHub – jobbole/awesome-python-cn: 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。

Warehousebandersnatch – PyPA 提供的 PyPI 镜像工具。

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 – 在中日韩语字符和数字字母之间添加空格。

pyfiglet -figlet 的 Python实现。

shortuuid – 一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。

unidecode – Unicode 文本的 ASCII 转换形式 。

uniout – 打印可读的字符,而不是转义的字符串。

xpinyin – 一个用于把汉字转换为拼音的库。

Slug化

awesome-slugify – 一个 Python slug 化库,可以保持 Unicode。

python-slugify – Python slug 化库,可以把 unicode 转化为 ASCII。

unicode-slugify – 一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。

解析器

phonenumbers – 解析,格式化,储存,验证电话号码。

PLY – lex 和 yacc 解析工具的 Python 实现。

Pygments – 通用语法高亮工具。

pyparsing – 生成通用解析器的框架。

python-nameparser – 把一个人名分解为几个独立的部分。

python-user-agents – 浏览器 user agent 解析器。

sqlparse – 一个无验证的 SQL 解析器。

特殊文本格式处理

一些用来解析和操作特殊文本格式的库。

通用

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 / xlrd – 读写 Excel 文件的数据和格式信息。

relatorio – 模板化OpenDocument 文件。

PDF

PDFMiner – 一个用于从PDF文档中抽取信息的工具。

PyPDF2 – 一个可以分割,合并和转换 PDF 页面的库。

ReportLab – 快速创建富文本 PDF 文档。

Markdown

Mistune – 快速并且功能齐全的纯 Python 实现的 Markdown 解析器。

Python-Markdown – John Gruber’s Markdown 的 Python 版实现。

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 – 将设置和代码完全隔离。

命令行工具

用于创建命令行程序的库。

命令行程序开发

cement – Python 的命令行程序框架。

click – 一个通过组合的方式来创建精美命令行界面的包。

cliff – 一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。

clint – Python 命令行程序工具。

colorama – 跨平台彩色终端文本。

docopt – Python 风格的命令行参数解析器。

Gooey – 一条命令,将命令行程序变成一个 GUI 程序。

python-prompt-toolkit – 一个用于构建强大的交互式命令行程序的库。

生产力工具

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 文件和回放功能。

视频

用来操作视频和GIF的库。

moviepy – 一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。

scikit-video – SciPy 视频处理常用程序。

地理位置

地理编码地址以及用来处理经纬度的库。

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 原生对象数据库。一个键值和对象图数据库。

数据库驱动

用来连接和操作数据库的库。

MySQL – awesome-mysql系列

mysql-python – Python 的 MySQL 数据库连接器。

mysqlclient – mysql-python 分支,支持 Python 3。

oursql – 一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs.

PyMySQL – 纯 Python MySQL 驱动,兼容 mysql-python。

PostgreSQL

psycopg2 – Python 中最流行的 PostgreSQL 适配器。

queries – psycopg2 库的封装,用来和 PostgreSQL 进行交互。

txpostgres – 基于 Twisted 的异步 PostgreSQL 驱动。

其他关系型数据库

apsw – 另一个 Python SQLite封装。

dataset – 在数据库中存储Python字典 – 可以协同SQLite,MySQL,和 PostgreSQL工作。

pymssql– 一个简单的Microsoft SQL Server数据库接口。

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

实现对象关系映射或数据映射技术的库。

关系型数据库

Django Models – Django 的一部分。

SQLAlchemy – Python SQL 工具以及对象关系映射工具。

awesome-sqlalchemy系列

Peewee – 一个小巧,富有表达力的 ORM。

PonyORM – 提供面向生成器的 SQL 接口的 ORM。

python-sql – 编写 Python 风格的 SQL 查询。

NoSQL 数据库

django-mongodb-engine – Django MongoDB 后端。

PynamoDB – Amazon DynamoDB 的一个 Python 风格接口。

flywheel – Amazon DynamoDB 的对象映射工具。

MongoEngine – 一个Python 对象文档映射工具,用于 MongoDB。

hot-redis – 为 Redis 提供 Python 丰富的数据类型。

redisco – 一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。

其他

butterdb – Google Drive 电子表格的 Python ORM。

Web 框架

全栈 web 框架。

Django – Python 界最流行的 web 框架。

awesome-django系列

Flask – 一个 Python 微型框架。

https://github.com/humiaozuzu/awesome-flask系列

Pyramid – 一个小巧,快速,接地气的开源Python web 框架。

awesome-pyramid系列

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

内容管理系统

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

django-rest-framework – 一个强大灵活的工具,用来构建 web API。

django-tastypie – 为Django 应用开发API。

django-formapi – 为 Django 的表单验证,创建 JSON APIs 。

Flask

flask-api – 为 flask 开发的,可浏览 Web APIs 。

flask-restful – 为 flask 快速创建REST APIs 。

flask-restless – 为 SQLAlchemy 定义的数据库模型创建 RESTful APIs 。

flask-api-utils – 为 Flask 处理 API 表示和验证。

eve – REST API 框架,由 Flask, MongoDB 等驱动。

Pyramid

cornice – 一个Pyramid 的 REST 框架 。

与框架无关的

falcon – 一个用来建立云 API 和 web app 后端的噶性能框架。

sandman – 为现存的数据库驱动系统自动创建 REST APIs 。

restless – 框架无关的 REST 框架 ,基于从 Tastypie 学到的知识。

ripozo – 快速创建 REST/HATEOAS/Hypermedia APIs。

验证

实现验证方案的库。

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 客户端实现。

其他

jose – JavaScript 对象签名和加密草案的实现。

PyJWT – JSON Web 令牌草案 01。

python-jws – JSON Web 签名草案 02 的实现。

python-jwt – 一个用来生成和验证 JSON Web 令牌的模块。

模板引擎

模板生成和词法解析的库和工具。

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-activity-stream – 从你的站点行为中生成通用活动信息流。

Stream-Framework – 使用 Cassandra 和 Redis 创建动态消息和通知系统。

资源管理

管理、压缩、缩小网站资源的工具。

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 库,用来抽取信息和签名。

国际化

用来进行国际化的库。

Babel – 一个Python 的国际化库。

Korean – 一个韩语词态库。

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 – 实时记录和收集日志的服务器。

测试

进行代码库测试和生成测试数据的库。

测试框架

unittest – (Python 标准库) 单元测试框架。

nose – nose 扩展了 unittest 的功能。

contexts – 一个 Python 3.3+ 的 BDD 框架。受到C# – Machine.Specifications的启发。

hypothesis – Hypothesis 是一个基于先进的 Quickcheck 风格特性的测试库。

mamba – Python 的终极测试工具, 拥护BDD。

PyAutoGUI – PyAutoGUI 是一个人性化的跨平台 GUI 自动测试模块。

pyshould– Should 风格的断言,基于 PyHamcrest

pytest– 一个成熟的全功能 Python 测试工具。

green– 干净,多彩的测试工具。

pyvows– BDD 风格的测试工具,受Vows.js的启发。

Robot Framework – 一个通用的自动化测试框架。

Web 测试

Selenium – Selenium WebDriver 的 Python 绑定。

locust – 使用 Python 编写的,可扩展的用户加载测试工具。

sixpack – 一个和语言无关的 A/B 测试框架。

splinter – 开源的 web 应用测试工具。

Mock测试

mock – (Python 标准库) 一个用于伪造测试的库。

doublex – Python 的一个功能强大的 doubles 测试框架。

freezegun – 通过伪造日期模块来生成不同的时间。

httmock – 针对 Python 2.6+ 和 3.2+ 生成 伪造请求的库。

httpretty – Python 的 HTTP 请求 mock 工具。

responses – 伪造 Python 中的 requests 库的一个通用库。

VCR.py – 在你的测试中记录和重放 HTTP 交互。

对象工厂

factoryboy – 一个 Python 用的测试固件 (test fixtures) 替代库。

mixer – 另外一个测试固件 (test fixtures) 替代库,支持 Django, Flask, SQLAlchemy, Peewee 等。

modelmommy – 为 Django 测试创建随机固件

代码覆盖率

coverage – 代码覆盖率测量。

伪数据

faker – 一个 Python 库,用来生成伪数据。

fake2db – 伪数据库生成器。

radar – 生成随机的日期/时间。

错误处理

FuckIt.py – FuckIt.py 使用最先进的技术来保证你的 Python 代码无论对错都能继续运行。

代码分析和Lint工具

进行代码分析,解析和操作代码库的库和工具。

代码分析

code2flow – 把你的 Python 和 JavaScript 代码转换为流程图。

pycallgraph -这个库可以把你的Python 应用的流程(调用图)进行可视化。

pysonar2 – Python 类型推断和检索工具。

Lint工具

Flake8 – 模块化源码检查工具: pep8, pyflakes 以及 co。

Pylint – 一个完全可定制的源码分析器。

pylama – Python 和 JavaScript 的代码审查工具。

调试工具

用来进行代码调试的库。

调试器

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 版。

性能分析器

lineprofiler – 逐行性能分析。

memoryprofiler – 监控 Python 代码的内存使用。

profiling – 一个交互式 Python 性能分析工具。

其他

pyelftools – 解析和分析 ELF 文件以及 DWARF 调试信息。

python-statsd – statsd 服务器的 Python 客户端。

科学技术和数据分析

用来进行科学计算和数据分析的库。

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 的高性能科学可视化工具。

计算机视觉

计算机视觉库。

OpenCV – 开源计算机视觉库。

SimpleCV – 一个用来创建计算机视觉应用的开源框架。

机器学习

机器学习库。 参见: 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

SublimeJEDI – 一个 Sublime Text 插件,用来使用超赞的自动补全库 Jedi。

Anaconda – Anaconda 把你的 Sublime Text 3 变成一个功能齐全的 Python IDE。

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 平台,用来构建和部署微服务。

代码质量

Codacy – 自动化代码审查,更加快速的发布高质量代码。对于开源项目是免费的。

QuantifiedCode – 一个数据驱动、自动、持续的代码审查工具。

资源

在这里可以找到新的 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

周刊

Import Python Newsletter

Pycoder’s Weekly

Python Weekly

Twitter

@codetengu

@getpy

@planetpython

@pycoders

@pypi

@pythontrending

@PythonWeekly

Python 资源大全中文版

伯乐在线已在 GitHub 上发起「Python 资源大全中文版」的整理。欢迎扩散、欢迎加入。

GitHub – jobbole/awesome-python-cn: Python资源大全中文版

编辑于 2016-08-01

董伟明

《Python Web开发实战》作者。订阅号:Python之美

1. GitHub – darknessomi/musicbox: 网易云音乐命令行版本。 高品质网易云音乐命令行版本,简洁优雅,丝般顺滑,基于Python编写。

<img src="https://pic2.zhimg.com/3d886ac004ac5218107f0c036251d931_b.png" data-rawwidth="1330" data-rawheight="996" class="content_image" width="1330" data-original="https://pic2.zhimg.com/3d886ac004ac5218107f0c036251d931_r.png">2.

2. GitHub – wting/autojump: A cd command that learns。 一个文件系统跳转的快捷命令。同样的还有shell编写的 GitHub – rupa/z: z is the new j, yo,用了就知道有多提高效率。

3. GitHub – docopt/docopt: Pythonic command line arguments parser, that will make you smile。上面有人提到了,但是没有人说到精髓,它使用脚本的docstring作为命令行的解析文本,也就是你直接写注释就可以完成argparse复杂的添加选项、指定参数等功能,所见即所得。

4. GitHub – Runscope/httpbin: HTTP Request &amp; Response Service, written in Python + Flask.。我还曾经写过类似的一个应用,那时候还没有遇到它。读它的源码时候发现它其实好几个的地方实现的很优雅。

5. GitHub – Russell91/pythonpy: the swiss army knife of the command line。有时候我会做一些简单地计算和功能的验证,之前得输入ipython然后imort对应的库,再执行(或者用 python -c 'import aaa; print aaa.bbb(1)'的方式)。现在用pythonpy,在命令行一句就好了。

6. GitHub – p-e-w/maybe: :rabbit2: See what a program does before deciding whether you really want it to happen.。大家都听过那个著名一个空格引发的惨剧吧,我以前也发生过本来是要执行「rm -rf tmp/*」, 结果卡了一下,执行成了「rm -rf tmp/ *」的惨痛经历,如果你有用maybe的习惯,就不会发生悲剧啦。

7. GitHub – nvbn/thefuck: Magnificent app which corrects your previous console command. 简直神器,修正你之前的命令行指令。

<img src="https://pic3.zhimg.com/07ee85a3d241dbd9f7a55e37914fadf6_b.png" data-rawwidth="1376" data-rawheight="752" class="content_image" width="1376" data-original="https://pic3.zhimg.com/07ee85a3d241dbd9f7a55e37914fadf6_r.png">8.

8. GitHub – getsentry/sentry: Sentry is cross-platform crash reporting built with love。错误搜集系统,现在应该没有哪个公司(不只是Python语言)不用它了吧?

9. GitHub – faif/python-patterns: A collection of design patterns/idioms in Python,以前学习设计模式要从很多文章甚至其他语言的版本中去理解,特别苦,直到我发现了这个项目,整个人都不好了。

10. https://github.com/jkbrzt/httpie。一个命令行HTTP 客户端,cURL 的替代品,它是Python语言中被star数量最多的项目,可见它的受欢迎程度,我几乎每天都在用它, 甚至为了表达对它的喜欢,特地读它的代码,找机会「混」进了它的项目贡献者列表。

知乎Live入口: 点击报名《董伟明 的 Live -- Web开发那些事儿》

欢迎关注本人的微信公众号获取更多Python相关的内容(也可以直接搜索「Python之美」):

编辑于 2017-02-25

Tony

无知少年,请多多指教

$ you-get http://tv.sohu.com/20141115/n406064831.shtml

you-get!

YouTube/优酷/土豆/搜狐/bilibili

给网址就下视频啊! 太好用了, 有木有

$ pip install you-get

发布于 2016-03-23

严林

干了这杯忧愁…

太多了网络

  • Scapy, Scapy3k: 发送,嗅探,分析和伪造网络数据包。可用作交互式包处理程序或单独作为一个库。
  • pypcap, Pcapy, pylibpcap: 几个不同 libpcap 捆绑的python库
  • libdnet: 低级网络路由,包括端口查看和以太网帧的转发
  • dpkt: 快速,轻量数据包创建和分析,面向基本的 TCP/IP 协议
  • Impacket: 伪造和解码网络数据包,支持高级协议如 NMB 和 SMB
  • pynids: libnids 封装提供网络嗅探,IP 包碎片重组,TCP 流重组和端口扫描侦查
  • Dirtbags py-pcap: 无需 libpcap 库支持读取 pcap 文件
  • flowgrep: 通过正则表达式查找数据包中的 Payloads
  • Knock Subdomain Scan: 通过字典枚举目标子域名
  • SubBrute: 快速的子域名枚举工具
  • Mallory: 可扩展的 TCP/UDP 中间人代理工具,可以实时修改非标准协议
  • Pytbull: 灵活的 IDS/IPS 测试框架(附带超过300个测试样例)

调试和逆向工程

  • Paimei: 逆向工程框架,包含 PyDBG, PIDA,pGRAPH
  • Immunity Debugger: 脚本 GUI 和命令行调试器
  • mona.py: Immunity Debugger 中的扩展,用于代替 pvefindaddr
  • IDAPython: IDA pro 中的插件,集成 Python 编程语言,允许脚本在 IDA Pro 中执行
  • PyEMU: 全脚本实现的英特尔32位仿真器,用于恶意软件分析
  • pefile: 读取并处理 PE 文件
  • pydasm: Python 封装的 libdasm
  • PyDbgEng: Python 封装的微软 Windows 调试引擎
  • uhooker: 截获 DLL 或内存中任意地址可执行文件的 API 调用
  • diStorm: AMD64 下的反汇编库
  • python-ptrace: Python 写的使用 ptrace 的调试器
  • vdb/vtrace: vtrace 是用 Python 实现的跨平台调试 API, vdb 是使用它的调试器
  • Androguard: 安卓应用程序的逆向分析工具
  • Capstone: 一个轻量级的多平台多架构支持的反汇编框架。支持包括ARM,ARM64,MIPS和x86/x64平台。
  • PyBFD: GNU 二进制文件描述(BFD)库的 Python 接口

Fuzzing

  • Sulley: 一个模糊器开发和模糊测试的框架,由多个可扩展的构件组成的
  • Peach Fuzzing Platform: 可扩展的模糊测试框架(v2版本 是用 Python 语言编写的)
  • antiparser: 模糊测试和故障注入的 API
  • TAOF: (The Art of Fuzzing, 模糊的艺术)包含 ProxyFuzz, 一个中间人网络模糊测试工具
  • untidy: 针对 XML 模糊测试工具
  • Powerfuzzer: 高度自动化和可完全定制的 Web 模糊测试工具
  • SMUDGE: 纯 Python 实现的网络协议模糊测试
  • Mistress: 基于预设模式,侦测实时文件格式和侦测畸形数据中的协议
  • Fuzzbox: 媒体多编码器的模糊测试
  • Forensic Fuzzing Tools: 通过生成模糊测试用的文件,文件系统和包含模糊测试文件的文件系统,来测试取证工具的鲁棒性
  • Windows IPC Fuzzing Tools: 使用 Windows 进程间通信机制进行模糊测试的工具
  • WSBang: 基于 Web 服务自动化测试 SOAP 安全性
  • Construct: 用于解析和构建数据格式(二进制或文本)的库
  • fuzzer.py(feliam): 由 Felipe Andres Manzano 编写的简单模糊测试工具
  • Fusil: 用于编写模糊测试程序的 Python 库

Web

  • Requests: 优雅,简单,人性化的 HTTP 库
  • HTTPie: 人性化的类似 cURL 命令行的 HTTP 客户端
  • ProxMon: 处理代理日志和报告发现的问题
  • WSMap: 寻找 Web 服务器和发现文件
  • Twill: 从命令行界面浏览网页。支持自动化网络测试
  • Ghost.py: Python 写的 WebKit Web 客户端
  • Windmill: Web 测试工具帮助你轻松实现自动化调试 Web 应用
  • FunkLoad: Web 功能和负载测试
  • spynner: Python 写的 Web浏览模块支持 Javascript/AJAX
  • python-spidermonkey: 是 Mozilla JS 引擎在 Python 上的移植,允许调用 Javascript 脚本和函数
  • mitmproxy: 支持 SSL 的 HTTP 代理。可以在控制台接口实时检查和编辑网络流量
  • pathod/pathoc: 变态的 HTTP/S 守护进程,用于测试和折磨 HTTP 客户端

取证

  • Volatility: 从 RAM 中提取数据
  • Rekall: Google 开发的内存分析框架
  • LibForensics: 数字取证应用程序库
  • TrIDLib: Python 实现的从二进制签名中识别文件类型
  • aft: 安卓取证工具集恶意软件分析
  • pyew: 命令行十六进制编辑器和反汇编工具,主要用于分析恶意软件
  • Exefilter: 过滤 E-mail,网页和文件中的特定文件格式。可以检测很多常见文件格式,也可以移除文档内容。
  • pyClamAV: 增加你 Python 软件的病毒检测能力
  • jsunpack-n: 通用 JavaScript 解释器,通过模仿浏览器功能来检测针对目标浏览器和浏览器插件的漏洞利用
  • yara-python: 对恶意软件样本进行识别和分类
  • phoneyc: 纯 Python 实现的蜜罐
  • CapTipper: 分析,研究和重放 PCAP 文件中的 HTTP 恶意流量

PDF

  • peepdf: Python 编写的PDF文件分析工具,可以帮助检测恶意的PDF文件
  • Didier Stevens’ PDF tools: 分析,识别和创建 PDF 文件(包含PDFiDpdf-parsermake-pdf 和 mPDF)
  • Opaf: 开放 PDF 分析框架,可以将 PDF 转化为 XML 树从而进行分析和修改。
  • Origapy: Ruby 工具 Origami 的 Python 接口,用于审查 PDF 文件
  • pyPDF2: Python PDF 工具包包含:信息提取,拆分,合并,制作,加密和解密等等
  • PDFMiner: 从 PDF 文件中提取文本
  • python-poppler-qt4: Python 写的 Poppler PDF 库,支持 Qt4
  • 杂项
  • InlineEgg: 使用 Python 编写的具有一系列小功能的工具箱
  • Exomind: 是一个利用社交网络进行钓鱼攻击的工具
  • RevHosts: 枚举指定 IP 地址包含的虚拟主句
  • simplejson: JSON 编码和解码器,例如使用 Google’s AJAX API
  • PyMangle: 命令行工具和一个创建用于渗透测试使用字典的库
  • Hachoir: 查看和编辑二进制流

其他有用的库和工具

  • IPython: 增强的交互式 Python shell
  • Beautiful Soup: HTML 解析器
  • matplotlib: 制作二维图
  • Mayavi: 三维科学数据的可视化与绘图
  • RTGraph3D: 在三维空间中创建动态图
  • Twisted: Python 语言编写的事件驱动的网络框架
  • Suds: 一个轻量级的基于SOAP的python客户端
  • M2Crypto: Python 语言对 OpenSSL 的封装
  • NetworkX: 图库(边, 节点)
  • Pandas: 基于 Numpy 构建的含有更高级数据结构和工具的数据分析包
  • pyparsing: 通用解析模块
  • lxml: 使用 Python 编写的库,可以迅速、灵活地处理 XML
  • Whoosh: 纯python实现的全文搜索组件
  • Pexpect: 控制和自动化程序
  • Sikuli: 使用 Jython 脚本自动化基于截图进行视觉搜索
  • PyQtPySide: Python 捆绑的 Qt 应用程序框架和 GUI 库

编辑于 2016-03-04

刘十九

诗酒趁年华

相见恨晚的库有很多啊决定利用午休的时间,把曾经惊艳过我的库都整理出来好了还不勇敢的点赞么亲马上为你呈上一锅热腾腾的美味,当当当当
web框架:

微信框架:

网络:

爬虫:

系统方面:

ORM:

模板引擎:

图像处理:

命令行应用:

静态网站生成器

数据处理:

其他:

<b style="font-weight:700;"–<———–我是分割线————-
此外我对django关注比较多,专门列出django部分
等有空再对其做细分

编辑于 2014-07-25

涛吴

编程旅行语言 话题的优秀回答者

补充三个有助于自动化日常工作的:

发布于 2014-07-25

赖明星

轮子哥@vczh的回答虽然是个玩笑(urllib、urlib2、urllib3),但是,也确实反映出了Python标准库的混乱。就我个人的使用感受来说,Python和Python标准库在数据结构方面非常强大,但是,在网络和邮件这两块,设计得非常糟糕。正是由于标准库的不完美,才有了更多更好的开源项目。对于Python程序员来说,可谓是"失之东隅,收之桑榆"。重要的是我们要善于发现并使用这些项目。

下面就给大家推荐几个我用过的,并且特别好用的项目,而不是简单的贴一下awesome python。相信很多人看完awesome python以后,只是简单的收藏一下,并没有很多帮助。

1. yagmail

Python官网上发邮件的例子(Examples – Python 2.7.13 documentation),大家感受一下。反正我看到这一堆的import就已经被吓退场了。

#!/usr/bin/env python

"""Send the contents of a directory as a MIME message."""

import os
import sys
import smtplib
# For guessing MIME type based on file name extension
import mimetypes

from optparse import OptionParser

from email import encoders
from email.message import Message
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

如果使用yagmail,发送一个带附件的邮件,只需要2行代码:

import yagmail
yag = yagmail.SMTP(user='joy_lmx@163.com', password='nicai?', host='smtp.163.com', port='25')
yag.send(user, subject = "I now can send an attachment", attachments=['a.txt', 'b.jpg']) 


2. requests

requests很多人都推荐过了,不过可能一些同学感受不到requests到底好在哪里。我们就以官网的例子为例简单说明,在没有request之前,如果我们要请求https://api.github.com/user,需要像下面这样:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib2

gh_url = 'https://api.github.com'

req = urllib2.Request(gh_url)

password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, gh_url, 'user', 'pass')

auth_manager = urllib2.HTTPBasicAuthHandler(password_manager)
opener = urllib2.build_opener(auth_manager)

urllib2.install_opener(opener)

handler = urllib2.urlopen(req)

print handler.getcode()
print handler.headers.getheader('content-type')

# ------
# 200
# 'application/json'

用requests以后,做同样的事情,我们可以这样(注意,前3行代码等于上面一整段代码):

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}


3. psutil

psutil是用来获取操作系统监控以及进程管理的,如果你正在写一个监控系统(或脚本),赶紧去试试。这么说吧,我曾经使用psutil把网易内部的一个监控模块,从1000+行重构到了100+行。

我这里推荐的几个库,可能yagmail对最多人有用。而psutil,对专业的人士最有用。如果你要写一个监控系统,不使用psutil的话,只能直接去/proc目录下读取想用的文件进行计算,或者执行iostat、vmstat、df等linux命令获取命令输出,不管哪一种方法,都要处理很多繁琐的细节。有了psutil以后,就轻松多了。贴段代码大家感受一下:

def get_network_info(self):
"""
    psutil.net_io_counters()
    snetio(bytes_sent=12541464, bytes_recv=21459989, packets_sent=80164, packets_recv=88134, errin=0, errout=0,
     dropin=0, dropout=0)
    """
return psutil.net_io_counters()

def get_memory_used(self):
"""
    psutil.virtual_memory()
    svmem(total=4159041536, available=3723980800, percent=10.5, used=1599082496,
     free=2559959040, active=587403264, inactive=897105920, buffers=95989760, cached=1068032000)
    """
memory_info = psutil.virtual_memory()
memory_used = ( memory_info.total * memory_info.percent / 100 ) / 1024 / 1024
return memory_used

此外,使用越来越广泛的监控工具glances(如果没用过,要不现在就是试试?),就是用psutil收集相关数据的。

4. BeautifulSoup

如果你写爬虫,还在用XPath解析HTML,那赶紧用用BeautifulSoup,比XPath好用一百倍;如果你还在用正则表达式从HTML中获取内容,BeautifulSoup能让你好用到哭。(补充:评论里大家都说XPath更好用,难道是我思维方式和大家不一样?)

BeautifulSoup是用来解析HTML的,特点就是好用,有人吐槽BeautifulSoup慢?我不在乎BeautifulSoup比XPath慢多少,我只知道,我的时间比机器的更宝贵。

例如,要找到页面中所有的links,如下所示:

from bs4 import BeautifulSoup
soup = BeautifulSoup(open("index.html"))
for link in soup.find_all('a'):
print(link.get('href'))

例如,我在编写知乎的爬虫的时候,对于每一个用户的”关注”页面,对于每一个关注对象,有如下的tag:

<div class="zm-profile-card zm-profile-section-item zg-clear no-hovercard">
    .......
<a title="天雨白" data-hovercard="p$t$tian-yu-bai" class="zm-item-link-avatar" href="/people/tian-yu-bai">
</a>
    .......
</div>

所以,解析单个关注的用户代码如下所示:

 soup = BeautifulSoup(text)
#通过属性找到这个div,对于每个用户,对应于这样一个div
items = soup.find_all('div', class_="zm-profile-card zm-profile-section-item zg-clear no-hovercard")
for item in items:
# 获取这个div下的<a>标签的title属性
name = item.a.attrs['title']
# 获取这个div下的<a>标签下的<img>标签里面的src属性
avatar  = item.a.img.attrs['src']

有了BeautifulSoup以后,爬虫操作就变得特别简单了。脏活累活别人都帮忙做好了。

5. utils

除了开源的库以外,还有些开源项目的DataStruct.py helper.py utils.py文件,也值得看一看。里面很多好东西,都是可以直接拿过来用的。

我举几个例子。

# -*- coding: utf-8 -*-

"""
requests.structures
~~~~~~~~~~~~~~~~~~~

Data structures that power Requests.

"""


class CaseInsensitiveDict(dict):
"""Case-insensitive Dictionary

    For example, ``headers['content-encoding']`` will return the
    value of a ``'Content-Encoding'`` response header."""
"""
    1. low_keys是一个字典,key是dict中key的消息形式,大写是dict中的key
    2. 如果对字典进行了修改操作,则清空low_keys
    3. 获取字典时,通过get --> __getitem__ --> __contains__ -->
    通过low_keys字典获取到真实的key,通过真实的key获取dict中的value
    """

@property
def lower_keys(self):
if not hasattr(self, '_lower_keys') or not self._lower_keys:
self._lower_keys = dict((k.lower(), k) for k in self.iterkeys())
return self._lower_keys

def _clear_lower_keys(self):
if hasattr(self, '_lower_keys'):
self._lower_keys.clear()

def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
self._clear_lower_keys()

def __delitem__(self, key):
dict.__delitem__(self, key)
self._lower_keys.clear()

def __contains__(self, key):
return key.lower() in self.lower_keys

def __getitem__(self, key):
# We allow fall-through here, so values default to None
if key in self:
return dict.__getitem__(self, self.lower_keys[key.lower()])

def get(self, key, default=None):
if key in self:
return self[key]
else:
return default

def main():
d = CaseInsensitiveDict()
d['Laimingxing'] = 'Laimingxing'
d['LAimingxing'] = 'LAimingxing'
print d
print d['LAimingxing']

if __name__ == '__main__':
main()

def dictreverse(mapping):
"""
    Returns a new dictionary with keys and values swapped.

        >>> dictreverse({1: 2, 3: 4})
        {2: 1, 4: 3}
    """
return dict([(value, key) for (key, value) in iteritems(mapping)])

def dictfind(dictionary, element):
"""
    Returns a key whose value in `dictionary` is `element`
    or, if none exists, None.

        >>> d = {1:2, 3:4}
        >>> dictfind(d, 4)
        3
        >>> dictfind(d, 5)
    """
for (key, value) in iteritems(dictionary):
if element is value:
return key

class Storage(dict):
"""
    A Storage object is like a dictionary except `obj.foo` can be used
    in addition to `obj['foo']`.

        >>> o = storage(a=1)
        >>> o.a
        1
        >>> o['a']
        1
        >>> o.a = 2
        >>> o['a']
        2
        >>> del o.a
        >>> o.a
        Traceback (most recent call last):
            ...
        AttributeError: 'a'

    """
def __getattr__(self, key):
try:
return self[key]
except KeyError as k:
raise AttributeError(k)

def __setattr__(self, key, value):
self[key] = value

def __delattr__(self, key):
try:
del self[key]
except KeyError as k:
raise AttributeError(k)

def __repr__(self):
return '<Storage ' + dict.__repr__(self) + '>'

ps:web.py的作者是亚伦·斯沃茨(Aaron Swartz),一位年少成名的计算机天才,著名社交网站Reddit联合创始人。致力于网络信息开放,却因涉嫌非法侵入麻省理工学院(MIT)和JSTOR(全称Journal Storage,存储学术期刊的在线系统)被指控,将受到最高35年监禁和100万美元罚款。该案正在认罪辩诉阶段,而亚伦·斯沃茨却于2013年1月11日在其纽约布鲁克林的寓所内,用一根皮带上吊自杀,尸体随后被女友发现,年仅26岁。

当然,我这还有很多乱七八糟的好东西,如果大家感兴趣的话,我再补充吧。要学Python看这里:乐岸教育Python公开课-在线播放-优酷网,视频高清在线观看

此外,大家反馈,这个回答也对大家很有帮助:怎么样才算是精通 Python?

编辑于 2017-02-20

机器之心

1

国内领先的前沿科技媒体和产业服务平台

又到了年终盘点时间,Tryo Labs 和去年一样推出了2016 年十大 Python 库的榜单。对于这份榜单的筛选条件,Tryo Labs 写道:「我们避开了 Django、Flask 等已经成为今天的标准库的已经成功的项目。另外,这个榜单中有的库是 2016 年之前建立的,但它们在今年的受欢迎度出现了暴增或我们认为它们非常好所以可以进入这个榜单。」下面是榜单详情:

1. Zappa

链接:Serverless Python Web Services

自 AWS Lambda(以及后续的其它项目)发布以来,人们的关注点就全部转移到了无服务器架构上。这些架构让我们可以将微服务(microservice)部署到云端、部署到一个完全可管理的环境中;在这样的环境中,人们不用关心管任何服务器,而只需要分配无状态的、短暂的计算容器(computing container)即可——一个服务提供商即可完全管理。通过这一范式,事件(比如流量尖峰)可以触发更多这些容器的执行,因此有可能能够处理「无限的」水平扩展。

Zappa 是一个用于 Python 的无服务器框架,尽管(至少目前)它仅支持 AWS Lambda 和 AWS API Gateway。它使得开发这样架构的应用变得非常简单,能将你从使用 AWS Console 或 API 的繁琐配置工作中解放出来,而且它还有各种用于简化部署和管理不同环境的命令。

2. Sanic + uvloop

链接:

Sanic: channelcat/sanic

uvloop: uvloop: Blazing fast Python networking

谁说 Python 不能很快?Sanic 不仅有可能是有史以来最好的软件库名字,也可能是有史以来最快的 Python 网页框架,而且似乎也远远超过其它框架。它是一个专为速度而设计的类 Flask 的 Python 3.5+ 网页服务器。另一个库 uvloop 是一个用于 asyncio 的事件循环(event loop,其底层使用了 libuv)的超快速的插件替代。这两个加起来就是一个强大的组合!

根据 Sanic 的作者的基准测试,uvloop 可以驱动 Sanic 每秒处理超过 3.3 万条请求,这实在太强了!(比 node.js 还快)。你的代码可以受益于这种新的 async/await 语法——它们会看起来很整洁;此外我们也喜欢 Flask 风格的 API。你一定要试试 Sanic,而且如果你也在使用 asyncio,你也可以无需太多修改你的代码就能受益于 uvloop。

3. asyncpg

链接:MagicStack/asyncpg

跟进 asyncio 框架的最新进展,来自 MagicStack 的人为我们带来了这个高效的异步(目前只支持 CPython 3.5)数据库接口库,其是专门为 PostgreSQL 设计的。它有零相关性,这意味不需要安装 libpq。相对而言,withpsycopg2(最流行的 Python 的 PostgreSQL 适配器)需要以文本格式与数据库服务器交换数据;而 asyncpg 则实现了 PostgreSQL 二进制 I/O 协议,这让其不仅支持通用类型,而且还有其它许多性能上的好处。

其基准是很清楚的:asyncpg 平均至少比 psycopg2(或 aiopg)快 3 倍,也比 node.js 和 Go 实现更快。

4. boto3

链接:boto/boto3

如果你的基础设施部署在 AWS 上或使用了它们的服务(比如 S3),那么你应该非常乐意看到 boto(用于 AWS API 的 Python 接口)被从头到尾完整重写了。而且你不用一次性就完全迁移你的应用:你可以同时使用 boto3 和 boto(2) ;比如仅在你应用中新的部分使用 boto3。

这个新的实现在不同的服务间会一致的多,而且因为其使用了数据驱动的方法来在运行时间(runtime)从 JSON 描述文件中生成类,所以其总是可以实现快速更新。再也不用滞后于新的 Amazon API 功能了,赶紧使用 bot3 吧!

5.TensorFlow

链接:https://www.tensorflow.org/

大名鼎鼎的 TensorFlow。自从谷歌在 2015 年 11 月发布以来,这个库已经获得了很多改进,它已成为时下最流行的 GitHub Python 库。简而言之,TensorFlow 是一个使用数据流图(data flow graphs)的数值计算库,可以在 GPU 或 CPU 上运行。

在过去一年里,我们目睹了 TensorFlow 在机器学习社区中掀起了一股新风潮(特别是在深度学习领域),它不仅出现在研究领域,而且在应用领域也非常常见。如果你正在做深度学习并想在高级别接口中使用它,你可以尝试以它为后端的 Keras 或新推出的 TensorFlow-Slim。

6.gym+universe

Gym:OpenAI Gym: A toolkit for developing and comparing reinforcement learning algorithms

Universe:Universe

如果你是人工智能圈内的人,肯定听说过非营利人工智能研究公司 OpenAI。他们的研究人员在今年开源了一些 Python 代码。Gym 是一个用于开发并比较强化学习算法的工具包。它包含一个开源库,这个库收集了一些可被用于测试强化学习算法的测试问题(环境)。它还包含一个站点与 API,能让你对比训练出的算法(代理,agent)的表现。因为它不在乎代理的实现方式,你可以选择使用自己的计算库建立代理:numpy、TensorFlow、Theano 等。

他们最近也发布了 Universe,这是一个用于研究通用人工智能在跨游戏、网页和其他应用上的表现的软件平台。Universe 能完美匹配 gym,因此它能让任何真实世界应用调整进 gym 环境中。研究人员希望这一无限的可能性能够加速对智能代理的研究,从而解决通用任务。

7.Bokeh

链接:Welcome to Bokeh

你可能熟知一些提供数据可视化的 Python 库,其中最流行的就是 matplotlib 和 seaborn。然而,Bokeh 被创造用来做交互可视化(interactive visualization),并且面向现代的网页浏览展示。这意味着 Bokeh 能创造出一个可以让你探索来自网页浏览器数据的情节(plot)。比较棒的是它紧密融合了 Juptyer Notebooks,所以你能使用它配合你的专业工具进行研究。它也有一个可选的服务器组件 bokeh-server,其带有许多强大的功能,比如在服务器端对大型数据集进行下采样、流传输数据、变换等。可点击网址 Gallery – Bokeh 0.12.3 documentation 查看案例,看起来很棒。

8.Blaze

链接:Ecosystem – Blaze 0.10.2rc1+5.g87dd886 documentation

有时候,当你对数据集运行分析时,却发现数据集过大,无法一次塞进计算机 RAM 中。如果你无法依赖 numpy 或 Pandas,你通常需要转而使用其他的工具,如 PostgreSQL、MongoDB、Hadoop、Spark 等等。这些工具都有其自身的优缺点,依照任务的特点,总有一种工具是适合你的。但决定转换工具是一项巨大的工程,因为你需要了解这些系统如何工作,以及如何以正确的形式插入数据。

Blaze 提供了一个统一的接口,让用户无需学习所有数据库技术。Blaze 库的核心是一种计算表达方式。Blaze 本身不会进行任何计算:它只是知道如何指定一个特定的后端,决定谁来执行任务。Blaze 还有其它很多功能(它形成了一个生态系统),它作为一个库被开发出来。例如,Dask 实现了一个可用于 NumPy 数组的插件,可以处理大于内存的内容和利用多核处理器,并且还具有动态任务调度能力。

9.Arrow

链接:crsmithdev/arrow

有一个流行的说法,在计算机科学领域只有两个大问题:无效缓存和命名。我认为这句话忽略了另一个大问题:管理数据时间(managing datetimes)。如果你曾经试图在 Python 中管理数据时间,你就会知道标准库里有巨量的模块和类型:datetime、date、 calendar、 tzinfo、 timedelta、 relativedelta、 pytz 等等。更糟糕的是,时区都自然设定为默认值。

Arrow 为开发者提供了「人类的时间(datetime for humans)」,提供了一种清晰的方法来创建、操作、格式化和转换日期、时间和时间戳。它可以用于替换 Python 2 和 3 的 datetime 类型,并提供了一个更友好的界面,同时加入新的功能(如 humanize)弥补了原系统的不足。即使你不需要 Arrow 提供的额外功能,使用它也可以大大减少代码中的引用。

10. Hug

链接:Embrace the APIs of the future

公开你的内部 API,这样可以大大简化 Python API 的开发过程。Hug 是一个仅限于 Python3 的库,提供在 Python 中创建 HTTP REST API 的最简单的方式。它不是一个 web 框架(虽然 Hug 提供这样的功能,而且表现很好),它的主要功能是公开正确的标准内部 Python API。这个想法非常简单:一次定义逻辑和结构,并且可以通过多种方式公开你的 API。目前,它支持公开 REST API 或命令行界面。

你可以使用类型注释(type annotations),让 Hug 不仅为你的 API 生成文件,同时提供验证和明确的错误消息,这可以让你的开发工作(和你的 API 用户的工作)变得轻松很多。Hug 构建在 Falcon 的高性能 HTTP 库之上,这意味着你可以使用任何 wsgi 兼容的服务器(例如 gunicorn)将其部署到生产环境中。

参考文章:Top 10 Python libraries of 2016 – Tryolabs Blog

发布于 2016-12-23

LittleCoder

维护微信个人号python接口:http://itchat.readthedocs.io,狂热bbt粉丝,业余写玩具

如果你要用python操作微信,安利一下itchat

先秀一下一个简单的使用案例,加了试试看呀:

下面是实现的代码:

import itchat, time

@itchat.msg_register(['Text', 'Map', 'Card', 'Note', 'Sharing'])
def text_reply(msg):
    itchat.send('%s: %s'%(msg['Type'], msg['Text']), msg['FromUserName'])

@itchat.msg_register(['Picture', 'Recording', 'Attachment', 'Video'])
def download_files(msg):
    fileDir = '%s%s'%(msg['Type'], int(time.time()))
    msg['Text'](fileDir)
    itchat.send('%s received'%msg['Type'], msg['FromUserName'])
    itchat.send('@%s@%s'%('img' if msg['Type'] == 'Picture' else 'fil', fileDir), msg['FromUserName'])

@itchat.msg_register('Friends')
def add_friend(msg):
    itchat.add_friend(**msg['Text'])
    itchat.get_contract()
    itchat.send_msg(msg['RecommendInfo']['UserName'], 'Nice to meet you!')

@itchat.msg_register('Text', isGroupChat = True)
def text_reply(msg):
    itchat.send(u'@%s\u2005I received: %s'%(msg['ActualNickName'], msg['Content']), msg['FromUserName'])


itchat.auto_login()
itchat.run()

用Python写东西是不是很爽:)

编辑于 2016-05-10

Lightwing

微博:李轶睿, 微信公众号:Lightwing

一些必须的:(越早发现越好)

Python内带的库就不提了。

1)基本工具:

virtualenv(虚拟环境)
pip、setuptools (e.g. easy_install,这些东西肯定要呢)
ipython(用了以后,就不再想用普通的python shell)
ipdb(ipython上的debugger,怎么能不用?难道要一直重新运行print某变量?)ipython notebook(又名jupyter,在线写代码并debug,这东西用了以后就知道自己错过了啥)
 记住%pylab … 这命令,这样图片之类的直接显示在网页里

fabric(控制多个服务器、方便安装、更改设置、开关某service、等等)
nose、mock、coverage(testing类)

gevent、eventlet(千万别用python自带的多线程库)
 gevent还有从外hijack thread这个debug功能
 别忘了monkey.patch(),哈哈

multiprocessing(必要使用多个处理器、还蛮有必要)
pypy/psyco/cython/ctypes/cffi etc.(理解这些很有必要,有时候还真的需要跟C兼容或加速)celery、luigi(同时进行多个process任务,任务之间需要沟通更方便管理)

logging
argparse(上面有人推荐docopt更好)

2)数据处理类:

numpy (千万别低估啊,谁缺少这个真的什么都干不好)

还有一些在numpy基础上的:

pillow/gd(图片数据类,还有不少图片处理功能)
matplotlib(把各种东西简单显示渲染出来)pandas(处理复杂数据、转化或合并数据等等。用了以后就不会再import csv之类的)
scipy(统计类,也不少图片处理、优化等功能)
sklearn(机器学习,好方便)
(theano、tensorflow这些也很有名,只是还没用过,还有个有名的OCR库忘了名字)

nltk、pattern(更多语言处理工具)pyopencl、pyopengl、pycuda(这些能让numpy做复杂任务更加强更快,利用GPU)

3)网络类:

requests(python内带的http/url等库很烦人)django、flask、twisted(以及其他web framework,比如Zope、Button、Webapp就不说了)
(django、flask下面还有很多小库,比如messages和websocket。太多了,不说了)
pika皮卡丘(不同服务器不同程序之间的沟通大大简化)
pyzmq(也类似,更简单一些,功能比较有限,不过还能直接调用远程python函数-rpc)
sqlalchemy、pymongo、pycouch(还有好多较为方便的数据库累的)

各种google api
 特别是appengine、compute engine api,还有maps/places/search api
 还有谷歌的pipeline、mapreduce之类的、google docs那个编辑远程表格的也不错

爬虫方面也不少有用的库,比如beautifulsoup、scrapy。
还有mechanize这种自动控制多个浏览器做事的库,利用浏览器引擎等。

4)其他:

TK, WX, QT(做界面)
pyglet、pygame、等(更好处理多个界面,各令块渲染,渲染频率,这些)
geopy、shapely、gdal、geos、pyproj(地图处理,可能还有些,早就忘了)
 但是数据库一定要选择PostGIS

arrow、pendulum(python内带的datetime处理太弱了)
py2exe类(把代码直接编译成executable,所有人能运行)
simplejson(更快)
pyyaml(相对json,更好写,呵呵)
joblib(比那个pickle好太多了,直接把某object存到硬盘等)
tqdm(在命令行显示progress进度,超简单)

暂时想不到更多,不好意思。

编辑于 2016-08-28

yegle

野生自学蟒蛇语

发现居然没人提lxml

pip install lxml之后可以用lxml提供的xpath解析器来解析HTML。xpath是一套标准的HTML DOM查询语法,再不用Beaultiful Soup4那么罗嗦又不好维护的语法了。而且最棒的是你可以直接从Firefox或者Chrome的development tool里复制某个DOM元素的xpath路径。

其他不论,光lxml使用C实现的代码,效率上就比bs4高很多。用过之后再也不想去用bs4了

编辑于 2014-07-28

hustcc

https://github.com/hustcc

大家都在贴 github 上的 awesome,一点个人感受和诚意都没有。

我就说两个:

1. requests:在没有用 requests 之前,用 urlib 发一个 post 请求无法理解,更不说提交一个文件了。

2. supervisord:当然不算是一个库,一个运维工具,好用。

发布于 2016-09-27

deckmon yang

requests

发布于 2014-07-23

柚子

吃,睡(ˉ﹃ˉ)

awesome-web-scraping 中文版
本文由 伯乐在线LynnShaw 翻译,赖信涛 校稿。未经许可,禁止转载!
英文出处:Gregory Petukhov。欢迎加入翻译组

这个列表包含与网页抓取和数据处理的Python库

网络

  • 通用
    • urllib -网络库(stdlib)。
    • requests -网络库。
    • grab – 网络库(基于pycurl)。
    • pycurl – 网络库(绑定libcurl)。
    • urllib3 – Python HTTP库,安全连接池、支持文件post、可用性高。
    • httplib2 – 网络库。
    • RoboBrowser – 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。
    • MechanicalSoup -一个与网站自动交互Python库。
    • mechanize -有状态、可编程的Web浏览库。
    • socket – 底层网络接口(stdlib)。
    • Unirest for Python – Unirest是一套可用于多种语言的轻量级的HTTP库。
    • hyper – Python的HTTP/2客户端。
    • PySocks – SocksiPy更新并积极维护的版本,包括错误修复和一些其他的特征。作为socket模块的直接替换。
  • 异步
    • treq – 类似于requests的API(基于twisted)。
    • aiohttp – asyncio的HTTP客户端/服务器(PEP-3156)。

网络爬虫框架

  • 功能齐全的爬虫
    • grab – 网络爬虫框架(基于pycurl/multicur)。
    • scrapy – 网络爬虫框架(基于twisted),不支持Python3。
    • pyspider – 一个强大的爬虫系统。
    • cola – 一个分布式爬虫框架。
  • 其他
    • portia – 基于Scrapy的可视化爬虫。
    • restkit – Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。
    • demiurge – 基于PyQuery的爬虫微框架。

HTML/XML解析器

  • 通用
    • lxml – C语言编写高效HTML/ XML处理库。支持XPath。
    • cssselect – 解析DOM树和CSS选择器。
    • pyquery – 解析DOM树和jQuery选择器。
    • BeautifulSoup – 低效HTML/ XML处理库,纯Python实现。
    • html5lib – 根据WHATWG规范生成HTML/ XML文档的DOM。该规范被用在现在所有的浏览器上。
    • feedparser – 解析RSS/ATOM feeds。
    • MarkupSafe – 为XML/HTML/XHTML提供了安全转义的字符串。
    • xmltodict – 一个可以让你在处理XML时感觉像在处理JSON一样的Python模块。
    • xhtml2pdf – 将HTML/CSS转换为PDF。
    • untangle – 轻松实现将XML文件转换为Python对象。
  • 清理
    • Bleach – 清理HTML(需要html5lib)。
    • sanitize – 为混乱的数据世界带来清明。

文本处理

用于解析和操作简单文本的库。

  • 通用
    • difflib – (Python标准库)帮助进行差异化比较。
    • Levenshtein – 快速计算Levenshtein距离和字符串相似度。
    • fuzzywuzzy – 模糊字符串匹配。
    • esmre – 正则表达式加速器。
    • ftfy – 自动整理Unicode文本,减少碎片化。
  • 转换
    • unidecode – 将Unicode文本转为ASCII。
  • 字符编码
    • uniout – 打印可读字符,而不是被转义的字符串。
    • chardet – 兼容 Python的2/3的字符编码器。
    • xpinyin – 一个将中国汉字转为拼音的库。
    • pangu.py – 格式化文本中CJK和字母数字的间距。
  • Slug化
    • awesome-slugify – 一个可以保留unicode的Python slugify库。
    • python-slugify – 一个可以将Unicode转为ASCII的Python slugify库。
    • unicode-slugify – 一个可以将生成Unicode slugs的工具。
    • pytils – 处理俄语字符串的简单工具(包括pytils.translit.slugify)。
  • 通用解析器
    • PLY – lex和yacc解析工具的Python实现。
    • pyparsing – 一个通用框架的生成语法分析器。
  • 人的名字
  • 电话号码
    • phonenumbers -解析,格式化,存储和验证国际电话号码。
  • 用户代理字符串

特定格式文件处理

解析和处理特定文本格式的库。

  • 通用
    • tablib – 一个把数据导出为XLS、CSV、JSON、YAML等格式的模块。
    • textract – 从各种文件中提取文本,比如 Word、PowerPoint、PDF等。
    • messytables – 解析混乱的表格数据的工具。
    • rows – 一个常用数据接口,支持的格式很多(目前支持CSV,HTML,XLS,TXT – 将来还会提供更多!)。
  • Office
    • python-docx – 读取,查询和修改的Microsoft Word2007/2008的docx文件。
    • xlwt / xlrd – 从Excel文件读取写入数据和格式信息。
    • XlsxWriter – 一个创建Excel.xlsx文件的Python模块。
    • xlwings – 一个BSD许可的库,可以很容易地在Excel中调用Python,反之亦然。
    • openpyxl – 一个用于读取和写入的Excel2010 XLSX/ XLSM/ xltx/ XLTM文件的库。
    • Marmir – 提取Python数据结构并将其转换为电子表格。
  • PDF
    • PDFMiner – 一个从PDF文档中提取信息的工具。
    • PyPDF2 – 一个能够分割、合并和转换PDF页面的库。
    • ReportLab – 允许快速创建丰富的PDF文档。
    • pdftables – 直接从PDF文件中提取表格。
  • Markdown
    • Python-Markdown – 一个用Python实现的John Gruber的Markdown。
    • Mistune – 速度最快,功能全面的Markdown纯Python解析器。
    • markdown2 – 一个完全用Python实现的快速的Markdown。
  • YAML
    • PyYAML – 一个Python的YAML解析器。
  • CSS
  • ATOM/RSS
  • SQL
    • sqlparse – 一个非验证的SQL语句分析器。
  • HTTP
    • http-parser – C语言实现的HTTP请求/响应消息解析器。
  • 微格式
    • opengraph – 一个用来解析Open Graph协议标签的Python模块。
  • 可移植的执行体
    • pefile – 一个多平台的用于解析和处理可移植执行体(即PE)文件的模块。
  • PSD
    • psd-tools – 将Adobe Photoshop PSD(即PE)文件读取到Python数据结构。

自然语言处理

处理人类语言问题的库。

  • NLTK -编写Python程序来处理人类语言数据的最好平台。
  • Pattern – Python的网络挖掘模块。他有自然语言处理工具,机器学习以及其它。
  • TextBlob – 为深入自然语言处理任务提供了一致的API。是基于NLTK以及Pattern的巨人之肩上发展的。
  • jieba – 中文分词工具。
  • SnowNLP – 中文文本处理库。
  • loso – 另一个中文分词库。
  • genius – 基于条件随机域的中文分词。
  • langid.py – 独立的语言识别系统。
  • Korean – 一个韩文形态库。
  • pymorphy2 – 俄语形态分析器(词性标注+词形变化引擎)。
  • PyPLN – 用Python编写的分布式自然语言处理通道。这个项目的目标是创建一种简单的方法使用NLTK通过网络接口处理大语言库。

浏览器自动化与仿真

  • selenium – 自动化真正的浏览器(Chrome浏览器,火狐浏览器,Opera浏览器,IE浏览器)。
  • Ghost.py – 对PyQt的webkit的封装(需要PyQT)。
  • Spynner – 对PyQt的webkit的封装(需要PyQT)。
  • Splinter – 通用API浏览器模拟器(selenium web驱动,Django客户端,Zope)。

多重处理

  • threading – Python标准库的线程运行。对于I/O密集型任务很有效。对于CPU绑定的任务没用,因为python GIL。
  • multiprocessing – 标准的Python库运行多进程。
  • celery – 基于分布式消息传递的异步任务队列/作业队列。
  • concurrent-futures – concurrent-futures 模块为调用异步执行提供了一个高层次的接口。

异步

异步网络编程库

  • asyncio – (在Python 3.4 +版本以上的 Python标准库)异步I/O,时间循环,协同程序和任务。
  • Twisted – 基于事件驱动的网络引擎框架。
  • Tornado – 一个网络框架和异步网络库。
  • pulsar – Python事件驱动的并发框架。
  • diesel – Python的基于绿色事件的I/O框架。
  • gevent – 一个使用greenlet 的基于协程的Python网络库。
  • eventlet – 有WSGI支持的异步框架。
  • Tomorrow – 异步代码的奇妙的修饰语法。

队列

  • celery – 基于分布式消息传递的异步任务队列/作业队列。
  • huey – 小型多线程任务队列。
  • mrq – Mr. Queue – 使用redis & Gevent 的Python分布式工作任务队列。
  • RQ – 基于Redis的轻量级任务队列管理器。
  • simpleq – 一个简单的,可无限扩展,基于Amazon SQS的队列。
  • python-gearman – Gearman的Python API。

云计算

  • picloud – 云端执行Python代码。
  • dominoup.com – 云端执行R,Python和matlab代码。

电子邮件

电子邮件解析库

  • flanker – 电子邮件地址和Mime解析库。
  • Talon – Mailgun库用于提取消息的报价和签名。

网址和网络地址操作

解析/修改网址和网络地址库。

  • URL
    • furl – 一个小的Python库,使得操纵URL简单化。
    • purl – 一个简单的不可改变的URL以及一个干净的用于调试和操作的API。
    • urllib.parse – 用于打破统一资源定位器(URL)的字符串在组件(寻址方案,网络位置,路径等)之间的隔断,为了结合组件到一个URL字符串,并将“相对URL”转化为一个绝对URL,称之为“基本URL”。
    • tldextract – 从URL的注册域和子域中准确分离TLD,使用公共后缀列表。
  • 网络地址
    • netaddr – 用于显示和操纵网络地址的Python库。

网页内容提取

提取网页内容的库。

  • HTML页面的文本和元数据
    • newspaper – 用Python进行新闻提取、文章提取和内容策展。
    • html2text – 将HTML转为Markdown格式文本。
    • python-goose – HTML内容/文章提取器。
    • lassie – 人性化的网页内容检索工具
    • micawber – 一个从网址中提取丰富内容的小库。
    • sumy -一个自动汇总文本文件和HTML网页的模块
    • Haul – 一个可扩展的图像爬虫。
    • python-readability – arc90 readability工具的快速Python接口。
    • scrapely – 从HTML网页中提取结构化数据的库。给出了一些Web页面和数据提取的示例,scrapely为所有类似的网页构建一个分析器。
  • 视频
    • youtube-dl – 一个从YouTube下载视频的小命令行程序。
    • you-get – Python3的YouTube、优酷/ Niconico视频下载器。
  • 维基
    • WikiTeam – 下载和保存wikis的工具。

WebSocket

用于WebSocket的库。

  • Crossbar – 开源的应用消息传递路由器(Python实现的用于Autobahn的WebSocket和WAMP)。
  • AutobahnPython – 提供了WebSocket协议和WAMP协议的Python实现并且开源。
  • WebSocket-for-Python – Python 2和3以及PyPy的WebSocket客户端和服务器库。

DNS解析

  • dnsyo – 在全球超过1500个的DNS服务器上检查你的DNS。
  • pycares – c-ares的接口。c-ares是进行DNS请求和异步名称决议的C语言库。

计算机视觉

  • OpenCV – 开源计算机视觉库。
  • SimpleCV – 用于照相机、图像处理、特征提取、格式转换的简介,可读性强的接口(基于OpenCV)。
  • mahotas – 快速计算机图像处理算法(完全使用 C++ 实现),完全基于 numpy 的数组作为它的数据类型。

其他Python工具列表

编辑于 2016-08-31

小鱼二

南大前端交流群/Angular2兴趣小组 私信

vinta/awesome-python · GitHub
Awesome Python

A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php.

vinta/awesome-python · GitHubEnvironment Management

Libraries for Python version and environment management.

  • pyenv – Simple Python version management.
  • virtualenv – A tool to create isolated Python environments.
  • virtualenvwrapper – A set of extensions to virtualenv.
  • virtualenv-api – An API for virtualenv and pip.
  • pew – A set of tools to manage multiple virtual environments.
  • Vex – Run a command in the named virtualenv.
  • PyRun – A one-file, no-installation-needed version of Python.

vinta/awesome-python · GitHubPackage Management

Libraries for package and dependency management.

  • pip – The Python package and dependency manager.
  • 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.

vinta/awesome-python · GitHubPackage Repositories

Local PyPI repository server and proxies.

  • warehouse – Next generation Python Package Repository (PyPI).
  • devpi – PyPI server and packaging/testing/release tool.
  • localshop – PyPI server which mirrors official packages on-demand, and also supports local (private) package uploads.

vinta/awesome-python · GitHubDistribution

Libraries to create packaged executables for release distribution.

  • cx-Freeze – Freezes Python scripts (cross-platform).
  • py2exe – Freezes Python scripts (Windows).
  • pynsist – A tool to build Windows installers, installers bundle Python itself.
  • py2app – Freezes Python scripts (Mac OS X).
  • 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.

vinta/awesome-python · GitHubBuild Tools

Compile software from source code.

  • buildout – A build system for creating, assembling and deploying applications from multiple parts, some of which may be non-Python-based.
  • SCons – A software construction tool.
  • PlatformIO – A console tool to build code with different development platforms.
  • BitBake – A make-like build tool with the special focus of distributions and packages for embedded Linux.
  • fabricate – A build tool that finds dependencies automatically for any language.

vinta/awesome-python · GitHubInteractive Interpreter

Interactive Python interpreters (REPL).

  • 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.

vinta/awesome-python · GitHubFiles

Libraries for file manipulation and MIME type detection.

  • mimetypes – (Python standard library) Map filenames to MIME types.
  • imghdr – (Python standard library) Determine the type of an image.
  • python-magic – A Python interface to the libmagic file type identification library.
  • path.py – A module wrapper for os.path.
  • watchdog – API and shell utilities to monitor file system events.
  • Unipath – An object-oriented approach to file/directory operations.
  • pathlib – (Python standard library in Python 3.4+) An cross-platform, object-oriented path library.

vinta/awesome-python · GitHubDate 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.
  • when.py – Providing user-friendly functions to help perform common date and time actions.
  • moment – A Python library for dealing with dates/times. Inspired by Moment.js.
  • pytz – World timezone definitions, modern and historical. Brings the tz database into Python.

vinta/awesome-python · GitHubText Processing

Libraries for parsing and manipulating plain texts.

  • General
    • difflib – (Python standard library) Helpers for computing deltas.
    • Levenshtein – Fast computation of Levenshtein distance and string similarity.
    • fuzzywuzzy – Fuzzy String Matching.
    • esmre – Regular expression accelerator.
    • shortuuid – A generator library for concise, unambiguous and URL-safe UUIDs.
    • ftfy – Makes Unicode text less broken and more consistent automagically.
    • unidecode – ASCII transliterations of Unicode text.
    • chardet – Python 2/3 compatible character encoding detector.
    • xpinyin – A library to translate Chinese hanzi (漢字) to pinyin (拼音).
    • pangu.py – Spacing texts for CJK and alphanumerics.
    • pyfiglet – An implementation of figlet written in Python.
    • uniout – Print readable chars instead of the escaped string.
  • 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
    • PLY – Implementation of lex and yacc parsing tools for Python
    • phonenumbers – Parsing, formatting, storing and validating international phone numbers.
    • python-user-agents – Browser user agent parser.
    • sqlparse – A non-validating SQL parser.
    • Pygments – A generic syntax highlighter.
    • python-nameparser – Parsing human names into their individual components.
    • pyparsing – A general purpose framework for generating parsers.

vinta/awesome-python · GitHubSpecific Formats Processing

Libraries for parsing and manipulating specific text formats.

  • General
    • tablib – A module for Tabular Datasets in XLS, CSV, JSON, YAML.
  • Office
    • python-docx – Reads, queries and modifies Microsoft Word 2007/2008 docx files.
    • xlwt / xlrd – Writing and reading data and formatting information from Excel files.
    • 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.
    • openpyxl – A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
    • Marmir – Takes Python data structures and turns them into spreadsheets.
    • unoconv – Convert between any document format supported by LibreOffice/OpenOffice.
  • PDF
    • PDFMiner – A tool for extracting information from PDF documents.
    • PyPDF2 – A library capable of splitting, merging and transforming PDF pages.
    • ReportLab – Allowing Rapid creation of rich PDF documents.
  • Markdown
    • Python-Markdown – A Python implementation of John Gruber’s Markdown.
    • Mistune – Fastest and full featured pure Python parsers of 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.

vinta/awesome-python · GitHubNatural 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. It has tools for natural language processing, machine learning, among others.
  • TextBlob – Providing a consistent API for diving into common NLP tasks. Stands on the giant shoulders of NLTK and Pattern.
  • jieba – Chinese Words Segmentation Utilities.
  • SnowNLP – A library for processing Chinese text.
  • loso – Another Chinese segmentation library.
  • genius – A Chinese segment base on Conditional Random Field.
  • langid.py – Stand-alone language identification system.

vinta/awesome-python · GitHubDocumentation

Libraries for generating project documentation.

  • Sphinx – Python Documentation generator.
  • reStructuredText – Markup Syntax and Parser Component of Docutils.
  • MkDocs – Markdown friendly documentation generator.
  • Pycco – The original quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.
  • pdoc – Epydoc replacement to auto generate API documentation for Python libraries.

vinta/awesome-python · GitHubConfiguration

Libraries for storing configuration options.

  • ConfigParser – (Python standard library) INI file parser.
  • ConfigObj – INI file parser with validation.
  • config – Hierarchical config from the author of logging.
  • profig – Config from multiple formats with value conversion.

vinta/awesome-python · GitHubCommand-line Tools

Libraries for building command-line application.

  • Command-line Application Development
    • cement – Cement provides a light-weight and fully featured foundation to build anything from single file scripts to complex and intricately designed applications.
    • click – A package for creating beautiful command line interfaces in a composable way.
    • clint – Python Command-line Application Tools.
    • cliff – A framework for creating command-line programs with multi-level commands.
    • Clime – Clime lets you convert any module into a multi-command CLI program without any configuration.
    • docopt – Pythonic command line arguments parser.
    • colorama – Cross-platform colored terminal text.
    • pyCLI – Command-line applications supporting standard command line parsing, logging, unit and functional testing.
    • 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
    • cookiecutter – A command-line utility that creates projects from cookiecutters (project templates). E.g. Python package projects, jQuery plugin projects.
    • httpie – A command line HTTP client, a user-friendly cURL replacement.
    • percol – Adds flavor of interactive selection to the traditional pipe concept on UNIX.
    • RainbowStream – Smart and nice Twitter client on terminal.
    • caniusepython3 – Determine what projects are blocking you from porting to Python 3.
    • thefuck – Correcting your previous console command.

vinta/awesome-python · GitHubDownloader

Libraries for downloading.

  • s3cmd – A command line tool for managing Amazon S3 and CloudFront.
  • youtube-dl – A small command-line program to download videos from YouTube.
  • you-get – A YouTube/Youku/Niconico video downloader written in Python 3.
  • coursera – Script for downloading Coursera.org videos and naming them.
  • WikiTeam – Tools for downloading and preserving wikis.
  • subliminal – Library and command line tool to search and download subtitles.

vinta/awesome-python · GitHubImagery

Libraries for manipulating images.

  • pillow – Pillow is the friendly PIL fork.
  • wand – Python bindings for MagickWand, C API for ImageMagick.
  • thumbor – A smart imaging service. It enables on-demand crop, resizing and flipping of images.
  • imgSeek – A project for searching a collection of images using visual similarity.
  • python-qrcode – A pure Python QR Code generator.
  • pyBarcode – Create barcodes in Python without needing PIL.
  • pygram – Instagram-like image filters.
  • Quads – Computer art based on quadtrees.
  • nude.py – Nudity detection.
  • scikit-image – A Python library for (scientific) image processing.
  • hmap – Image histogram remapping.

vinta/awesome-python · GitHubOCR

Libraries for Optical Character Recognition.

vinta/awesome-python · GitHubAudio

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.
  • 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.
  • m3u8 – A module for parsing m3u8 file.

vinta/awesome-python · GitHubVideo

Libraries for manipulating video and GIFs.

  • moviepy – A module for script-based movie editing with many formats, including animated GIFs.
  • shorten.tv – Video summarization.
  • scikit-video – Video processing routines for SciPy.

vinta/awesome-python · GitHubGeolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • GeoDjango – A world-class geographic web framework.
  • geopy – Python Geocoding Toolbox.
  • pygeoip – Pure Python GeoIP API.
  • GeoIP – Python API for MaxMind GeoIP Legacy Database.
  • geojson – Python bindings and utlities for GeoJSON.
  • django-countries – A Django app that provides country choices for use with forms, flag icons static files, and a country field for models.

vinta/awesome-python · GitHubHTTP

Libraries for working with HTTP.

  • requests – HTTP Requests for Humans™.
  • grequests – requests + gevent for asynchronous HTTP requests.
  • urllib3 – A HTTP library with thread-safe connection pooling, file post support, sanity friendly.
  • httplib2 – Comprehensive HTTP client library.
  • treq – Python requests like API built on top of Twisted's HTTP client.

vinta/awesome-python · GitHubDatabase

Databases implemented in Python.

  • ZODB – A native object database for Python. A key-value and object graph database.
  • pickleDB – A simple and lightweight key-value store for Python.
  • TinyDB – A tiny, document-oriented database.

vinta/awesome-python · GitHubDatabase Drivers

Libraries for connecting and operating databases.

  • Relational Databases
    • mysql-python – The MySQL database connector for Python.
    • mysqlclient – mysql-python fork supporting Python 3.
    • PyMySQL – Pure Python MySQL driver compatible to mysql-python.
    • mysql-connector-python – A pure Python MySQL driver from Oracle.
    • oursql – A better MySQL connector with support for native prepared statements and BLOBs.
    • psycopg2 – The most popular PostgreSQL adapter for Python.
    • txpostgres – Twisted based asynchronous driver for PostgreSQL.
    • queries – A wrapper of the psycopg2 library for interacting with PostgreSQL.
    • dataset – Store Python dicts in a database – works with SQLite, MySQL, and PostgreSQL.
  • NoSQL Databases
    • cassandra-python-driver – Python driver for Cassandra.
    • pycassa – Python Thrift driver for Cassandra.
    • HappyBase – A developer-friendly library for Apache HBase.
    • PyMongo – The official Python client for MongoDB.
    • Plyvel – A fast and feature-rich Python interface to LevelDB.
    • redis-py – The Redis Python Client.
    • py2neo – Python wrapper client for Neo4j's restful interface.
    • telephus – Twisted based client for Cassandra.
    • txRedis – Twisted based client for Redis.

vinta/awesome-python · GitHubORM

Libraries that implement Object-Relational Mapping or datamapping techniques.

  • Relational Databases
  • NoSQL Databases
    • MongoEngine – A Python Object-Document-Mapper for working with MongoDB.
    • django-mongodb-engine – Django MongoDB Backend.
    • redisco – A Python Library for Simple Models and Containers Persisted in Redis.
    • flywheel – Object mapper for Amazon DynamoDB.
  • Others
    • butterdb – A Python ORM for Google Drive Spreadsheets.

vinta/awesome-python · GitHubWeb Frameworks

Full stack web frameworks.

  • Django – The most popular web framework in Python.
  • Flask – A microframework for Python.
  • Bottle – A fast, simple and lightweight WSGI micro web-framework.
  • Pyramid – A small, fast, down-to-earth, open source Python web framework.
  • web2py – A full stack web framework and platform focused in the ease of use.
  • web.py – A web framework for Python that is as simple as it is powerful.
  • TurboGears – The Web Framework that starts as a microframework and scales up to a fullstack solution.
  • CherryPy – A Minimalist Python Web Framework, HTTP/1.1-compliant and WSGI thread-pooled.
  • Grok – A framework built on the existing Zope 3 libraries.
  • Bluebream – An open-source web application server, framework and library, formerly known as Zope 3.
  • guava – A lightweight and high performance web framework for Python written in C.

vinta/awesome-python · GitHubPermissions

Libraries that allow or deny users access to data or functionality.

  • django-guardian – Implementation of per object permissions for Django 1.2+
  • Carteblanche – Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.

vinta/awesome-python · GitHubCMS

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.
  • Kotte – 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.

vinta/awesome-python · GitHubE-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.
  • 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.
  • alipay – Unofficial Alipay API for Python.

vinta/awesome-python · GitHubRESTful API

Libraries for developing RESTful APIs.

  • cornice – A REST framework for Pyramid.
  • django-rest-framework – A powerful and flexible toolkit that makes it easy to build Web APIs.
  • django-tastypie – Creating delicious APIs for Django apps.
  • django-formapi – Create JSON APIs with HMAC authentication and Django form-validation.
  • flask-api – An implementation of the same web browsable APIs that django-rest-framework provides.
  • flask-restful – An extension for Flask that adds support for quickly building REST APIs.
  • flask-restless – A Flask extension for generating ReSTful APIs for database models defined with SQLAlchemy (or Flask-SQLAlchemy).
  • flask-api-utils – Flask extension that takes care of API representation and authentication.
  • falcon – A high-performance Python framework for building cloud APIs and web app backends.
  • eve – REST API framework powered by Flask, MongoDB and good intentions.
  • sandman – Automated REST APIs for existing database-driven systems.
  • restless – Framework agnostic REST framework based on lessons learned from TastyPie.
  • savory-pie – REST API building library (django, and others)

vinta/awesome-python · GitHubAuthentication

Libraries for implementing authentications schemes.

  • OAuth
    • Authomatic – Simple but powerful framework agnostic authentication/authorization client package.
    • OAuthLib – A generic, spec-compliant, thorough implementation of the OAuth request-signing logic.
    • rauth – A Python library for OAuth 1.0/a, 2.0, and Ofly.
    • python-oauth2 – A fully tested, abstract interface to creating OAuth clients and servers.
    • python-social-auth – An easy-to-setup social authentication mechanism.
    • django-oauth-toolkit – OAuth2 goodies for the Djangonauts.
    • django-oauth2-provider – Providing OAuth2 access to Django app.
    • django-allauth – Authentication app for Django that "just works."
    • Flask-OAuthlib – OAuth 1.0/a, 2.0 implementation of client and provider for Flask.
    • sanction – A dead simple OAuth2 client implementation.
  • Others
    • PyJWT – Implementation of the JSON Web Token draft 01.
    • python-jwt – Module for generating and verifying JSON Web Tokens.
    • python-jws – Implementation of JSON Web Signatures draft 02.
    • jose – JavaScript Object Signing and Encryption draft implementation.

vinta/awesome-python · GitHubTemplate 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.
  • Chameleon – An HTML/XML template engine. Modeled after ZPT, optimized for speed.
  • Spitfire – A very fast Python template compiler.

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.

vinta/awesome-python · GitHubSearch

Libraries and software for indexing and performing search queries on data.

vinta/awesome-python · GitHubNews Feed

Libraries for building user's activities.

  • Feedly – A library to build newsfeed and notification systems using Cassandra and Redis.
  • django-activity-stream – Generate generic activity streams from the actions on your site.

vinta/awesome-python · GitHubAsset Management

Tools for managing, compressing and minifying website assets.

  • django-compressor – Compresses linked and inline javascript or CSS into a single cached file.
  • jinja-assets-compressor – A Jinja extension to compile and compress your assets.
  • webassets – Bundles, optimizes, and manages unique cache-busting URLs for static resources.
  • fanstatic – Packages, optimizes, and serves static file dependencies as Python packages.
  • fileconveyor – Monitors changes, processes, and transports assets to CDNs and file storage systems.
  • django-storages – A collection of custom storage backends for Django.
  • glue – Glue is a simple command line tool to generate CSS sprites.
  • libsass-python – A Python binding of libsass, the reference implementation of SASS/SCSS.
  • Flask-Assets – Helps you integrate webassets into your Flask app.

vinta/awesome-python · GitHubCaching

Libraries for caching data.

  • Beaker – A library for caching and sessions for use with web applications and stand-alone Python scripts and applications.
  • 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.
  • django-cache-machine – Automatic caching and invalidation for Django models through the ORM.
  • django-cacheops – A slick ORM cache with automatic granular event-driven invalidation.
  • johnny-cache – A caching framework for django applications.
  • django-viewlet – Render template parts with extended cache control.
  • pylibmc – A Python wrapper around the libmemcached interface.

vinta/awesome-python · GitHubEmail

Libraries for sending and parsing email.

  • inbox.py – Python SMTP Server for Humans.
  • imbox – Python IMAP for Humans.
  • inbox – The open source email toolkit.
  • lamson – Pythonic SMTP Application Server.
  • flanker – A email address and Mime parsing library.
  • marrow.mailer – High-performance extensible mail delivery framework.
  • django-celery-ses – Django email backend with AWS SES and Celery.
  • modoboa – A mail hosting and management platform including a modern and simplified Web UI.
  • envelopes – Mailing for human beings.
  • mailjet – Mailjet API implementation for batch mailing, statistics and more.
  • Talon – Mailgun library to extract message quotations and signatures.
  • pyzmail – Compose, send and parse emails.

vinta/awesome-python · GitHubInternationalization

Libraries for working with i18n.

  • Babel – An internationalization library for Python.
  • Korean – A library for Korean morphology.

vinta/awesome-python · GitHubURL 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.

vinta/awesome-python · GitHubHTML Manipulation

Libraries for working with HTML and XML.

  • BeautifulSoup – Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
  • lxml – A very fast, easy-to-use and versatile library for handling HTML and XML.
  • html5lib – A standards-compliant library for parsing and serializing HTML documents and fragments.
  • pyquery – A jQuery-like library for parsing HTML.
  • cssutils – A CSS library for Python.
  • MarkupSafe – Implements a XML/HTML/XHTML Markup safe string for Python.
  • bleach – A whitelist-based HTML sanitization and text linkification library.
  • xmltodict – Working with XML feel like you are working with JSON.
  • xhtml2pdf – HTML/CSS to PDF converter.
  • untangle – Converts XML documents to Python objects for easy access.

vinta/awesome-python · GitHubWeb Crawling

Libraries for scraping websites.

  • Scrapy – A fast high-level screen scraping and web crawling framework.
  • portia – Visual scraping for Scrapy.
  • feedparser – Universal feed parser.
  • RoboBrowser – A simple, Pythonic library for browsing the web without a standalone web browser.
  • MechanicalSoup – A Python library for automating interaction with websites.
  • mechanize – Stateful programmatic web browsing.
  • Demiurge – PyQuery-based scraping micro-framework.
  • cola – A distributed crawling framework.
  • pyspider – A powerful spider system.
  • Grab – Site scraping framework.

vinta/awesome-python · GitHubWeb Content Extracting

Libraries for extracting web contents.

  • newspaper – News extraction, article extraction and content curation in Python.
  • html2text – Convert HTML to Markdown-formatted text.
  • python-goose – HTML Content/Article Extractor.
  • lassie – Web Content Retrieval for Humans.
  • micawber – A small library for extracting rich content from URLs.
  • sumy – A module for automatic summarization of text documents and HTML pages.
  • Haul – An Extensible Image Crawler.
  • python-readability – Fast Python port of arc90's readability tool.
  • opengraph – A Python module to parse the Open Graph Protocol
  • textract – Extract text from any document, Word, PowerPoint, PDFs, etc.
  • sanitize – Bringing sanity to world of messed-up data.

vinta/awesome-python · GitHubForms

Libraries for working with forms.

  • WTForms – A flexible forms validation and rendering library.
  • WTForms-JSON – A WTForms extension for JSON data handling.
  • 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.

vinta/awesome-python · GitHubData Validation

Libraries for validating data. Used for forms in many cases.

  • voluptuous – A Python data validation library. It is primarily intended for validating data coming into Python as JSON, YAML, etc.
  • colander – A system for validating and deserializing data obtained via XML, JSON, an HTML form post or any other equally simple data serialization.
  • schema – A library for validating Python data structures.
  • Schematics – Data Structure Validation.
  • kmatch – A language for matching/validating/filtering Python dictionaries.
  • valideer – Lightweight extensible data validation and adaptation library.

vinta/awesome-python · GitHubAnti-spam

Libraries for fighting spam.

vinta/awesome-python · GitHubTagging

Libraries for tagging items.

vinta/awesome-python · GitHubAdmin Panels

Libraries for administrative interfaces.

  • Ajenti – The admin panel your servers deserve.
  • Grappelli – A jazzy skin for the Django Admin-Interface.
  • 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.

vinta/awesome-python · GitHubStatic 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.

vinta/awesome-python · GitHubProcesses and Threads

Libraries for working with processes or threads

  • multiprocessing – (Python standard library) Process-based "threading" interface.
  • threading – (Python standard library) Higher-level threading interface.
  • envoy – Python Subprocesses for Humans™.
  • sh – A full-fledged subprocess replacement for Python.
  • sarge – A wrapper for subprocess.

vinta/awesome-python · GitHubConcurrency and Networking

Libraries for concurrency and network programming.

  • asyncio – (Python standard library in Python 3.4+) Asynchronous I/O, event loop, coroutines and tasks.
  • gevent – A coroutine-based Python networking library that uses greenlet.
  • Twisted – An event-driven networking engine.
  • Tornado – A Web framework and asynchronous networking library.
  • pulsar – Event-driven concurrent framework for Python.
  • diesel – Greenlet-based event I/O Framework for Python.
  • eventlet – Asynchronous framework with WSGI support.
  • pyzmq – A Python wrapper for the 0MQ message library.
  • txZMQ – Twisted based wrapper for the 0MQ message library.
  • Crossbar – Open-source Unified Application Router (Websocket & WAMP for Python on Autobahn).

vinta/awesome-python · GitHubWebSocket

Libraries for working with WebSocket.

vinta/awesome-python · GitHubWSGI Servers

WSGI-compatible web servers.

  • wsgiref – (Python standard library) WSGI reference implementation, single-threaded.
  • Werkzeug – A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.
  • paste – Multi-threaded, stable, tried and tested.
  • rocket – Multi-threaded.
  • waitress – Multi-threaded, poweres Pyramid.
  • netius – Asynchronous, very fast.
  • gunicorn – Pre-forked, partly written in C.
  • fapws3 – Asynchronous (network side only), written in C.
  • meinheld – Asynchronous, partly written in C.
  • bjoern – Asynchronous, very fast and written in C.

vinta/awesome-python · GitHubRPC Servers

RPC-compatible servers.

vinta/awesome-python · GitHubCryptography

  • PyCrypto – The Python Cryptography Toolkit.
  • Paramiko – A Python (2.6+, 3.3+) implementation of the SSHv2 protocol, providing both client and server functionality.
  • cryptography – A package designed to expose cryptographic primitives and recipes to Python developers.
  • PyNacl – Python binding to the Networking and Cryptography (NaCl) library.
  • hashids – Implementation of hashids in Python.
  • Passlib – Secure password storage/hashing library, very high level.

vinta/awesome-python · GitHubGUI

Libraries for working with graphical user interface applications.

  • 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.
  • wxPython – A blending of the wxWidgets C++ class library with the Python.
  • kivy – A library for creating NUI applications, running on Windows, Linux, Mac OS X, Android and iOS.
  • curses – Built-in wrapper for ncurses used to create terminal GUI applications.
  • urwid – A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc.
  • pyglet – A cross-platform windowing and multimedia library for Python.
  • Tkinter – Tkinter is Python's de-facto standard GUI package.
  • enaml – Creating beautiful user-interfaces with Declaratic Syntax like QML.
  • Toga – A Python native, OS native GUI toolkit.

vinta/awesome-python · GitHubGame Development

Awesome game development libraries.

  • Pygame – Pygame is a set of Python modules designed for writing games.
  • Cocos2d – cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is based on pyglet.
  • PySDL2 – A ctypes based wrapper for the SDL2 library.
  • Panda3D – 3D game engine developed by Disney and maintained by Carnegie Mellon's Entertainment Technology Center. Written in C++, completely wrapped in Python.
  • 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.
  • PySFML – Python bindings for SFML
  • RenPy – A Visual Novel engine.

vinta/awesome-python · GitHubLogging

Libraries for generating and working with log files.

  • logging – (Python standard library) Logging facility for Python.
  • logbook – Logging replacement for Python.
  • Sentry – A realtime logging and aggregation server.
  • Raven – The Python client for Sentry.

vinta/awesome-python · GitHubTesting

Libraries for testing codebases and generating test data.

  • Testing Frameworks
    • unittest – (Python standard library) Unit testing framework.
    • nose – nose extends unittest.
    • pytest – A mature full-featured Python testing tool.
    • mamba – The definitive testing tool for Python. Born under the banner of BDD.
    • contexts – A BDD framework for Python 3.3+. Inspired by C#'s Machine.Specifications.
    • pyshould – Should style asserts based on PyHamcrest.
    • pyvows – BDD style testing for Python. Inspired by Vows.js.
  • Web Testing
    • Selenium – Python bindings for Selenium WebDriver.
    • splinter – Open source tool for testing web applications.
    • locust – Scalable user load testing tool written in Python.
    • sixpack – A language-agnostic A/B Testing framework.
  • Mock
    • mock – A Python Mocking and Patching Library for Testing.
    • responses – A utility library for mocking out the requests Python library.
    • doublex – Powerful test doubles framework for Python.
    • freezegun – Travel through time by mocking the datetime module.
    • httpretty – HTTP request mock tool for Python.
    • httmock – A mocking library for requests for Python 2.6+ and 3.2+.
  • Code Coverage
    • coverage – Code coverage measurement.
  • Fake Data
    • faker – A Python package that generates fake data.
    • fake2db – Fake database generator.
    • mixer – Generating fake data and creating random fixtures for testing in Django ORM, SQLAlchemy, Peewee, MongoEngine, Pony ORM and etc.
    • model_mommy – Creating random fixtures for testing in Django.
    • ForgeryPy – An easy to use forged data generator for Python. It's a port of forgery.
    • radar – Generate random datetime / time.
  • 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.

vinta/awesome-python · GitHubCode Analysis and Linter

Libraries and tools for analysing, parsing and manipulation codebases.

  • Code Analysis
    • pysonar2 – A type inferencer and indexer for Python.
    • pycallgraph – A library that visualises the flow (call graph) of your Python application.
    • code2flow – Turn your Python and JavaScript code into DOT flowcharts.
  • Linter
    • Flake8 – The modular source code checker: pep8, pyflakes and co.
    • pylama – Code audit tool for Python and JavaScript.
    • Pylint – A source code analyzer.

vinta/awesome-python · GitHubDebugging Tools

Libraries for debugging code.

  • pdb – (Python standard library) The Python Debugger.
  • ipdb – IPython-enabled pdb.
  • winpdb – A Platform Independent Python Debugger with GUI.
  • pudb – A full-screen, console-based Python debugger.
  • pyringe – Debugger capable of attaching to and injecting code into Python processes.
  • python-statsd – Python Client for the statsd server.
  • memory_profiler – Monitor Memory usage of Python code.
  • profiling – An interactive Python profiler.
  • django-debug-toolbar – Display various debug information about the current request/response.
  • django-devserver – A drop-in replacement for Django's runserver.
  • flask-debugtoolbar – A port of the django-debug-toolbar to flask.
  • pyelftools – A pure-Python library for parsing and analyzing ELF files and DWARF debugging information.

Science and Data Analysis

Libraries for scientific computing and data analyzing.

  • SciPy – A Python-based ecosystem of open-source software for mathematics, science, and engineering.
  • NumPy – A fundamental package for scientific computing with Python.
  • Numba – Python JIT (just in time) complier to LLVM aimed at scientific Python by the developers of Cython and NumPy.
  • NetworkX – A high-productivity software for complex networks.
  • Pandas – A library providing high-performance, easy-to-use data structures and data analysis tools.
  • Open Mining – Business Intelligence (BI) in Python (Pandas web interface)
  • PyMC – Markov Chain Monte Carlo sampling toolkit.
  • zipline – A Pythonic algorithmic trading library.
  • PyDy – Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion based around NumPy, SciPy, IPython, and matplotlib.
  • SymPy – A Python library for symbolic mathematics.
  • statsmodels – Statistical modeling and econometrics in Python.
  • astropy – A community Python library for Astronomy.
  • orange – Data mining, data visualization, analysis and machine learning through visual programming or Python scripting.
  • RDKit – Cheminformatics and Machine Learning Software.
  • Open Babel – A chemical toolbox designed to speak the many languages of chemical data.
  • cclib – A library for parsing and interpreting the results of computational chemistry packages.
  • Biopython – Biopython is a set of freely available tools for biological computation.
  • bccb – Collection of useful code related to biological analysis.
  • bcbio-nextgen – A toolkit providing best-practice pipelines for fully automated high throughput sequencing analysis.
  • blaze – NumPy and Pandas interface to Big Data.

Data Visualization

Libraries for visualizing data. See: awesome-javascript.

  • matplotlib – A Python 2D plotting library.
  • bokeh – Interactive Web Plotting for Python.
  • plotly – Collaborative web plotting for Python and matplotlib.
  • vincent – A Python to Vega translator.
  • d3py – A plottling library for Python, based on D3.js.
  • ggplot – Same API as ggplot2 for R.
  • Kartograph.py – Rendering beautiful SVG maps in Python.
  • pygal – A Python SVG Charts Creator.
  • pygraphviz – Python interface to Graphviz.
  • PyQtGraph – Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
  • 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.

  • scikit-learn – A Python module for machine learning built on top of SciPy.
  • pattern – Web mining module for Python.
  • NuPIC – Numenta Platform for Intelligent Computing.
  • Pylearn2 – A Machine Learning library based on Theano.
  • hebel – GPU-Accelerated Deep Learning Library in Python.
  • gensim – Topic Modelling for Humans.
  • PyBrain – Another Python Machine Learning Library.
  • Crab – A flexible, fast recommender engine.
  • python-recsys – A Python library for implementing a Recommender System.
  • vowpal_porpoise – A lightweight Python wrapper for Vowpal Wabbit.

MapReduce

Framworks and libraries for MapReduce.

  • PySpark – The Spark Python API.
  • dpark – Python clone of Spark, a MapReduce alike framework in Python.
  • luigi – A module that helps you build complex pipelines of batch jobs.
  • mrjob – Run MapReduce jobs on Hadoop or Amazon Web Services.
  • dumbo – Python module that allows one to easily write and run Hadoop programs.
  • streamparse – Run Python code against real-time streams of data. Integrates with Apache Storm.

Functional Programming

Functional Programming with Python.

  • 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.
  • CyToolz – Cython implementation of Toolz: High performance functional utilities.

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.
  • twython – A Python wrapper for the Twitter API.
  • google-api-python-client – Google APIs Client Library for Python.
  • gspread – Google Spreadsheets Python API.
  • 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.
  • django-wordpress – WordPress models and views for Django.

DevOps Tools

Software and libraries for DevOps.

  • OpenStack – Open source software for building private and public clouds.
  • Ansible – A radically simple IT automation platform.
  • SaltStack – Infrastructure automation and management system.
  • Fabric – A simple, Pythonic tool for remote execution and deployment.
  • Fabtools – Tools for writing awesome Fabric files.
  • cuisine – Chef-like functionality for Fabric.
  • psutil – A cross-platform process and system utilities module.
  • pexpect – Controlling interactive programs in a pseudo-terminal like GNU expect.
  • provy – An easy-to-use provisioning system in Python.
  • honcho – A Python port of Foreman, a tool for managing Procfile-based applications.
  • gunnery – Multipurpose task execution tool for distributed systems with web-based interface.
  • Docker-Compose – Fast, isolated development environments using Docker.
  • hgapi – Pure-Python API for Mercurial.
  • gitapi – Pure-Python API for git.
  • supervisor – Supervisor process control system for UNIX.

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/build tool.
  • Joblib – A set of tools to provide lightweight pipelining in Python.
  • Plan – Writing crontab file in Python like a charm.
  • Spiff – A powerful workflow engine implemented in pure Python.
  • schedule – Python job scheduling for humans.
  • TaskFlow – A Python library that helps to make task execution easy, consistent and reliable.

Foreign Function Interface

Libraries for providing foreign function interface.

  • ctypes – (Python standard library) Foreign Function Interface for Python calling C code.
  • cffi – Foreign Function Interface for Python calling C code.
  • SWIG – Simplified Wrapper and Interface Generator.
  • PyCUDA – A Python wrapper for Nvidia's CUDA API.

High Performance

Libraries for making Python faster.

  • Cython – Optimizing Static Complier for Python. Uses type mixins to compile Python into C or C++ modules resulting in large performance gains.
  • 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.
  • Stackless Python – An enhanced version of the Python.
  • Pyston – A Python implementation built using LLVM and modern JIT techniques with the goal of achieving good performance.

Microsoft Windows

Python programming on Microsoft Windows.

  • PyWin32 – Python Extensions for Windows.
  • PythonNet – Python Intergration with the .NET Common Language Runtime (CLR).
  • pythonlibs – Unofficial Windows binaries for Python extension packages.
  • spyder – IDE for the Python language with advanced editing, interactive testing, debugging and introspection features (also comes with Anaconda, WinPython).
  • Python(x,y) – Scientific-applications-oriented Python Distribution based on Qt and Spyder.
  • 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.

  • PyUserInput – A module for cross-platform control of the mouse and keyboard.
  • wifi – A Python library and command line tool for working with WiFi on Linux.
  • scapy – A brilliant packet manipulation library.
  • ino – Command line toolkit for working with Arduino.
  • Pyro – Python Robotics.

Compatibility

Libraries for migrating from Python 2 to 3.

  • Six – Python 2 and 3 compatibility utilities.
  • Python-Future – The missing compatibility layer between Python 2 and Python 3.
  • Python-Modernize – Modernizes Python code for eventual Python 3 migration.

Miscellaneous

Useful libraries or tools that don't fit in the categories above.

  • pluginbase – A simple but flexible plugin system for Python.
  • itsdangerous – Various helpers to pass trusted data to untrusted environments.
  • blinker – A fast Python in-process signal/event dispatching system.
  • Pychievements – A framework for creating and tracking achievements.

Algorithms and Design Patterns

Python implementation of algorithms and design patterns.

Editor Plugins

Plugins for editors and IDEs.

  • Vim
    • Python-mode – An all in one plugin for turning Vim into a Python IDE.
    • Jedi-vim – Vim bindings for the Jedi autocompletion library for Python.
    • YouCompleteMe – Includes Jedi-based completion engine for Python
  • Emacs
    • Elpy – Emacs Python Development Environment.
  • Sublime Text
    • SublimeJEDI – A Sublime Text plugin to the awesome autocomplete library Jedi.
    • Anaconda – Anaconda turns your Sublime Text 3 in a full featured Python development IDE.
  • Atom
    • Linter – A static code analysis tool for Atom.
    • Linter-flake8 – An addon to linter, that acts as an interface for flake8.
    • virtualenv – Atom package for virtualenv management.

Resources

Where to discover new Python libraries.

Websites

Weekly

Twitter

Other Awesome Lists

List of lists.

发布于 2015-05-01

可逆

主业Android,业余玩python

相见恨晚只推荐一个 Sphinx 爱上写文档

What users say:

“Cheers for a great tool that actually makes programmers want to write documentation!”

发布于 2014-07-27

不求东西

不求南北,各奔东西

django,那ORM用起来超快感

发布于 2015-04-21

随便forget

scikit-learn

发布于 2014-07-25

七七

Master@CMU ||| 懒癌晚期

你们说的都好高大上,为何我第一个想到的是cPickle。。
虽然我发现了之后才发现这好像是个很基础的库,但在刚发现它的时候简直不能更惊喜【捂脸

=======我是有新发现了的分割线======

最近发现了一个库, timeit

用来测试一段代码的执行时间。

简直是我这种“到底这么写会快一点还是那么些会快一点呢”的纠结星人的大救星……

编辑于 2015-03-17

党凡

飞凡士科技

Celery

发布于 2014-08-08

发表评论

电子邮件地址不会被公开。 必填项已用*标注