哪些 Python 库让你相见恨晚?
GitHub搜Python库时发现了一个的宝藏仓库,收录了全网种类超全的Python库!
包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。
这个仓库目前有129000+stars。
原链接在这里:https://github.com/vinta/awesome-python
点赞收藏,就不用担心下次找不到这份python库了~
小编打包好的Python库合集,获取方式:
1、转发评论
2、私信回复【资料】
(顺序是按照英语字母A-Z排序)方便大家浏览查找到自己需要的库:
1.管理面板(Admin Panels )
管理界面库。
- Ajenti:一个你的服务器值得拥有的管理面板。
- django-grappelli:拥有绚丽外观的 Django Admin 界面。
- django-jet:具有改进功能的现代响应式 Django 管理界面模板。
- django-suit:Django 管理界面的一个替代品(仅对于非商业用途是免费的)。
- django-xadmin:Django admin 的一个替代品,具有很多不错的功能。
- flask-admin:一个用于 Flask 的简单可扩展的管理界面框架。
- flower:一个对 Celery 集群进行实时监控和提供 web 管理界面的工具。
- jet-bridge:管理面板框架,适用于任何具有良好 UI 的应用(例如 Django)。
- Wooey:一个 Django 应用,可以为 Python 脚本创建 web 用户界面。
2.算法和设计模式(Algorithms and Design Patterns)
数据结构、算法和设计模式的 Python 实现。也可以参考 awesome-algorithms 。
- 算法
- algorithms:数据结构和算法的简单示例。
- python-ds:用于面试的数据结构和算法的集合。
- sortedcontainers:排序集合的快速的纯 Python 实现。
- TheAlgorithms:所有算法的 Python 实现。
- 设计模式
- PyPattyrn:一个简单而有效的库,用于实现常见的设计模式。
- python-patterns:一个 Python 设计模式集合。
- transitions:轻量级的,面向对象的有限状态机实现。
3.ASGI 服务器(ASGI Servers)
兼容 ASGI 的 web 服务器。
- daphne:用于 ASGI 和 ASGI-HTTP 的,支持 HTTP,HTTP2 和 WebSocket 协议的服务器。
- uvicorn:使用 uvloop 和 httptools 实现的闪电般快速的 ASGI 服务器。
4.异步编程(Asynchronous Programming)
- asyncio (Python标准库)异步I/O、事件循环、协程和任务。
- trio 异步并发和 I/O 友好的库。
- Twisted 一个事件驱动的网络引擎。
- uvloop 在 libuv 之上超快速实现 asyncio 事件循环。
5.音频(Audio)
用于操作音频及其元数据的库。
- 音频:
- audioread:交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。
- dejavu:音频指纹提取和识别。
- kapre:Keras 音频处理器。
- librosa:音频音乐分析 Python 库。
- matchering:用于音频母带制作的库。
- mingus:一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。
- pyAudioAnalysis:音频特征提取,分类,分段和应用。
- pydub:通过简单、简洁的高层接口来操作音频文件。
- TimeSide:开源 web 音频处理框架。
- 元数据:
- beets:一个音乐库管理工具及 MusicBrainz 标签添加工具。
- eyeD3:一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。
- mutagen:一个用来处理音频元数据的 Python 模块。
- tinytag:一个用来读取 MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。
6.验证(Authentication)
实现验证方案的库。
- OAuth
- authlib:一个强大的Python库,用来构建 OAuth 和 OpenID 服务端。包括:JWS, JWK, JWA, JWT。
- django-allauth:Django 的验证应用。
- django-oauth-toolkit:为 Django 用户准备的 OAuth2。
- OAuthLib:一个 OAuth 请求-签名逻辑通用、 完整的实现。
- Flask-OAuthlib:OAuth 1.0/a, 2.0 客户端实现,供 Flask 使用。
- python-oauth2:一个完全测试的抽象接口。用来创建 OAuth 客户端和服务端。
- python-social-auth:一个设置简单的社会化验证方式。
- 其他
- PyJWT:JSON Web 令牌的实现。
- python-jwt:一个用来生成和验证 JSON Web 令牌的模块。
- python-jose:python 版 JOSE 实现。
7.构建工具(Build Tools)
将源码编译成软件。
- BitBake:针对嵌入式 Linux 的类似 make 的构建工具。
- buildout:一个构建系统,从多个组件来创建,组装和部署应用。
- PlatformIO:多平台命令行构建工具。
- PyBuilder:纯 Python 实现的持续化构建工具。
- SCons:软件构建工具。
8.内置类的增强版实现(Built-in Classes Enhancement)
一些 Python 内置类的增强版实现库。
- attrs:一个在类定义时可替换 __init__, __eq__, __repr__等方法的样板。
- bidict:高效的 Pythonic 的双向映射数据结构和相关功能。
- Box:具有高级点符号访问权限的 Python 字典。
- dataclasses:(Python 标准库) 数据类。
- DottedDict:提供一种使用点路径符号访问列表和字典的方法的库。
9.CMS
内容管理系统。
- django-cms:一个开源的,企业级 CMS,基于 Django。
- FeinCMS:基于 Django 构建的最先进的内容管理系统之一。
- indico:一个功能丰富的事件管理系统,由 @CERN 开发。
- Kotti:一个高级的,Python 范的 web 应用框架,基于 Pyramid 构建。
- Mezzanine:一个强大的,持续的,灵活的内容管理平台。
- Plone:一个构建于开源应用服务器 Zope 之上的 CMS。
- Quokka:灵活,可扩展的小型 CMS,基于 Flask 和 MongoDB。
- Wagtail:一个 Django 内容管理系统。
10.缓存(Caching)
缓存数据的库。
- Beaker:一个缓存和会话库,可以用在 web 应用和独立 Python 脚本和应用上。
- django-cache-machine:Django 模型的自动缓存和失效。
- django-cacheops:具有自动颗粒化事件驱动失效功能的 ORM。
- dogpile.cache:dogpile.cache 是 Beaker 的下一代替代品,由同一作者开发。
- HermesCache:Python 缓存库,具有基于标签的失效和 dogpile effect 保护功能。
- pylibmc:libmemcached 接口的 Python 封装。
- python-diskcache:SQLite 和文件支持的缓存后端,具有比 memcached 和 redis 更快的查找速度。
11.聊天工具(ChatOps Tools)
聊天机器人开发相关的库。
- errbot:实现 ChatOps 的最简单最受欢迎的聊天机器人。
12.代码分析(Code Analysis)
进行代码分析、解析和操作代码库的库和工具。
- 代码分析
- coala:语言独立和易于扩展的代码分析应用程序。
- code2flow:把你的 Python 和 JavaScript 代码转换为流程图。
- prospector:分析 Python 代码的工具。
- pycallgraph:这个库可以把你的 Python 应用的流程(调用图)进行可视化。
- vulture:用于发现和分析无效 Python 代码的工具。
- Lint 工具
- Flake8:模块化源码检查工具,提供与 pycodestyle、pyflakes、McCabe 相关的装饰器。
- awesome-flake8-extensions
- pylama:Python 和 JavaScript 的代码审查工具。
- Pylint:一个完全可定制的源码分析器。
- wemake-python-styleguide:有史以来最严格的 Python 代码审查工具。
- 代码格式化
- black:一个坚定的 Python 代码格式化工具。
- isort:用于纠正包导入顺序的 Python 库。
- autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。
- 静态类型检查,也可以参考 awesome-python-typing
- mypy:在编译期间检查变量类型。
- pyre-check:性能类型检查。
- typeshed:带有静态类型的Python库存根的集合。
- 静态类型注释生成器
- MonkeyType:通过收集运行时的类型来为 Python 生成静态类型注释的系统。
- pyannotate:自动生成符合 PEP-484 的注解。
- pytype:检查和推断 Python 代码中的类型,无需添加注解。
13.命令行界面开发(Command-line Interface Development)
用于创建命令行程序的库。
- 命令行程序开发
- cement:Python 的命令行程序框架。
- click:一个通过组合的方式来创建精美命令行界面的包。
- cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。
- docopt:Python 风格的命令行参数解析器。
- python-fire:Google 出品的一个基于 Python 类的构建命令行界面的库。
- python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库。
- 终端呈现方式
- alive-progress:一款新的进度条,具有实时吞吐量信息以及非常酷的动画。
- asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级 API。
- bashplotlib:在终端中进行基本绘图。
- colorama:跨平台彩色终端文本。
- rich:一个在终端中支持富文本和格式美化的 Python 库, 同时提供了RichHandler
日志处理程序。 - tqdm:一个可在循环和命令行中使用的快速、可扩展的进度条。
14.命令行工具(Command-line Tools)
- 生产力工具
- copier:用于呈现项目模板的库和命令行实用程序。
- cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。
- doitlive:一个用来在终端中进行现场演示的工具。
- howdoi:通过命令行获取即时的编程问题解答。
- Invoke:用于管理面向 shell 的子进程,同时支持将可执行的 Python 代码组织成命令行可调用的状态。
- PathPicker:从 bash 输出中选出文件。
- percol:向 UNIX shell 传统管道概念中加入交互式选择功能。
- thefuck:修正你之前的命令行指令。
- tmuxp: tmux 会话管理器。
- try:一个极其简单的命令行工具,用来试用 python 库。
- 高级 CLI
- httpie:一个命令行 HTTP 客户端,cURL 的替代品,易用性更好。
- iredis:支持自动补全和高亮显示的 redis 命令行工具。
- kube-shell:K8S 命令行集成的 shell 工具。
- litecli:支持自动补全和语法高亮的 SQLite 命令行工具。
- mycli:支持自动补全和语法高亮的 MySQL 命令行客户端
- pgcli:支持自动补全和语法高亮的 Postgres 命令行工具。
- SAWS:一个加强版的 AWS 命令行。
15.兼容性(Compatibility)
帮助从 Python 2 向 Python 3 迁移的库。
- Python-Future:这就是 Python 2 和 Python 3 之间丢失的那个兼容性层。
- Six:Python 2 和 3 的兼容性工具。
- modernize:使 Python 代码更加现代化以便最终迁移到 Python 3。
16.计算机视觉(Computer Vision)
计算机视觉相关库。
- OpenCV:开源计算机视觉库。
- pytesseract:Google Tesseract OCR 的另一包装库。
- SimpleCV:一个用来创建计算机视觉应用的开源框架。
- EasyOCR:支持40多种语言的即用型 OCR。
- Face Recognition:简单的面部识别库。
- Kornia:PyTorch 的开源差异化计算机视觉库。
- tesserocr:另一个简单的,兼容 Pillow 的 tesseract-ocr
API 装饰器,可用于 OCR。
17.并发和并行(Concurrency and Parallelism)
用以进行并发和并行操作的库。
- concurrent.futures:(Python 标准库) 异步执行可调用对象的高级接口。
- threading:(Python 标准库)更高层的线程接口。
- eventlet:支持 WSGI 的异步框架。
- gevent:一个基于协程的 Python 网络库,使用 greenlet。
- Tomorrow:用于产生异步代码的神奇的装饰器语法实现。
- uvloop:在 libuv 之上超快速实现 asyncio 事件循环。
- multiprocessing:(Python 标准库) 基于进程的“线程”接口。
- scoop:支持在 Python 中进行可伸缩并行操作。
18.配置(Configuration)
用来保存和解析配置的库。
- config:logging 模块作者写的分级配置模块。
- ConfigObj:INI 文件解析器,带验证功能。
- ConfigParser:(Python 标准库) INI 文件解析器。
- python-decouple:将设置和代码完全隔离。
- hydra:一个优雅地配置复杂应用程序的框架。
19.密码学(Cryptography)
- cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者。
- Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能。
- Passlib:安全密码存储/哈希库。
- PyCrypto:Python 密码学工具箱。
- PyNacl:网络和密码学(NaCl) 库的 Python 绑定。
20.数据分析(Data Analysis)
用来进行数据分析的库。
- AWS Data Wrangler:AWS 平台上使用的 Pandas。
- blaze:NumPy 和 Pandas 的大数据接口。
- Open Mining:使用 Python 挖掘商业情报 (BI) (Pandas web 接口)。
- Optimus:在使用 PySpark 时,让敏捷数据科学工作流程变得简单。
- orange:通过可视化编程或 Python 脚本进行数据挖掘,数据可视化,分析和机器学习。
- Pandas:提供高性能,易用的数据结构和数据分析工具。
21.数据验证(Data Validation)
数据验证库。多用于表单验证。
- Cerberus:一个映射验证器(mappings-validator)。支持多种规则,提供归一化功能,可以方便地定制为 Python 风格的 schema 定义。
- colander:一个用于对从 XML, JSON,HTML 表单获取的数据或其他同样简单的序列化数据进行验证和反序列化的系统。
- schema:一个用于对 Python 数据结构进行验证的库。
- Schematics:数据结构验证。
- valideer:轻量级可扩展的数据验证和适配库。
- voluptuous:一个 Python 数据验证库。主要是为了验证传入 Python 的 JSON,YAML 等数据。
- jsonschema:JSON Schema 的 python 实现,用于 JSON 数据的验证。
22.数据可视化(Data Visualization)
进行数据可视化的库。 参见:awesome-javascript。
- matplotlib:一个 Python 2D 绘图库。
- bokeh:用 Python 进行交互式 web 绘图。
- ggplot:ggplot2 给 R 提供的 API 的 Python 版本。
- plotly:协同 Python 和 matplotlib 工作的 web 绘图库。
- pyecharts:基于百度 Echarts 的数据可视化库。
- pygal:一个 Python SVG 图表创建工具。
- pygraphviz:Graphviz 的 Python 接口。
- PyQtGraph:交互式实时 2D/3D/ 图像绘制及科学/工程学组件。
- SnakeViz:一个基于浏览器的 Python's cProfile 模块输出结果查看工具。
- vincent:把 Python 转换为 Vega 语法的转换工具。
- VisPy:基于 OpenGL 的高性能科学可视化工具。
- Altair:用于 Python 的声明式统计可视化库。
- bqplot:Jupyter Notebook 的交互式绘图库。
- Cartopy:具有 matplotlib 支持的 Python 制图库。
- Dash:构建在 Flask、React 和 Plotly 之上,旨在用于分析 Web 应用程序。
- diagrams:用图表作为代码。
- plotnine:基于ggplot2的Python图形语法。
- PyGraphviz: Graphviz 的 Python 接口。
- Seaborn:使用 Matplotlib 进行统计数据可视化。
23.数据库(Database)
Python 实现的数据库。
- pickleDB:一个简单,轻量级键值储存数据库。
- TinyDB:一个微型的,面向文档型数据库。
- ZODB:一个 Python 原生对象数据库。一个键值和对象图数据库。
24.数据库驱动(Database Drivers)
用来连接和操作数据库的库。
- MySQL:awesome-mysql 系列
- aiomysql:基于 asyncio 的异步 MySQL 数据库操作库。
- mysql-python:Python 的 MySQL 数据库连接器。
- ysqlclient: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 字典
- 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 客户端。
- kafka-python:Apache Kafka Python 客户端。
- 异步客户端
- motor:支持 MongoDB 的异步 Python 驱动程序。
25.日期和时间(Date and Time)
操作日期和时间的类库。
- arrow:更好的 Python 日期时间操作类库。
- Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。
- dateutil:Python datetime 模块的扩展。
- delorean:解决 Python 中有关日期处理的棘手问题的库。
- maya:人性化的时间处理库。
- pendulum:一个比 arrow 更具有明确的,可预测的行为的时间操作库。
- PyTime:一个简单易用的 Python 模块,用于通过字符串来操作日期/时间。
- pytz:现代以及历史版本的世界时区定义。将时区数据库引入 Python。
- when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。
- dateutil:Python 标准包 datetime 的扩展。
- moment:一个处理日期/时间的库,灵感来自 Moment.js。
- pytz:支持跨平台时区计算,并将 tz database 引入 Python。
26.调试工具(Debugging Tools)
用来进行代码调试的库。
- 调试器
- ipdb:IPython 启用的 pdb。
- pudb:全屏,基于控制台的 Python 调试器。
- pdb++:另一种 pdb 的替代。
- wdb:一个奇异的 web 调试器,通过 WebSockets 工作。
- 追踪器
- lptrace:为 Python 程序打造的 strace。
- manhole:调试UNIX套接字连接,并显示所有线程的堆栈跟踪和交互式提示。
- pyringe:能够附加到 Python 进程并将代码注入Python进程的调试器。
- python-hunter:一个灵活的代码追踪工具包。
- 性能分析器
- lineprofiler:逐行性能分析。
- Memory Profiler、内存:监控 Python 代码的内存使用。
- py-spy:Python 程序采样分析器,使用 Rust 实现。
- pyflame:用于 Python 的跟踪分析器。
- vprof:视觉 Python 分析器。
- 其他
- pyelftools:解析和分析 ELF 文件以及 DWARF 调试信息。
- django-debug-toolbar:为 Django 显示各种调试信息。
- django-devserver:一个 Django 运行服务器的替代品。
- flask-debugtoolbar:django-debug-toolbar 的 flask 版。
- icecream:通过一个简单的函数调用检查变量、表达式和程序执行情况。
27.深度学习(Deep Learning)
神经网络和深度学习相关框架。 也可以参考 awesome-deep-learning。
- Caffe:一个 Caffe 的 python 接口。
- keras:以 tensorflow/theano/CNTK 为后端的深度学习封装库,快速上手神经网络。
- MXNet:一个高效和灵活的深度学习框架。
- Pytorch:一个具有张量和动态神经网络,并有强大 GPU 加速能力的深度学习框架。
- SerpentAI:游戏代理框架,可使用任意视频游戏作为深度学习沙箱。
- Theano:一个快速数值计算库。
- TensorFlow:谷歌开源的最受欢迎的深度学习框架。
- hebel:GPU 加速的深度学习库。
- pydeep:Python 深度学习库。
28.DevOps 工具(DevOps Tools)
用于 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:在一个伪终端中控制交互程序,就像 GNU expect 一样。
- psutil:一个跨平台进程和系统工具模块。
- supervisor:UNIX 的进程控制系统。
- cloudinit:一个多分发包,用于处理云实例的早期初始化。
- pyinfra:一个通用的 CLI 工具包和 python 库,用于自动化的基础设施。
- honcho:Foreman 的 Python 克隆版,用于管理基于 Procfile 的应用。
- BorgBackup:具有压缩和加密功能的重复数据删除存档器。
- docker-compose: 使用 Docker 的快速独立的开发环境。
29.分布式计算(Distributed Computing)
分布式计算相关的框架和库。
- dpark:Spark 的 Python 克隆版,一个类似 MapReduce 的框架。
- dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序。
- luigi:这个模块帮你构建批处理作业的复杂流水线。
- mrjob:在 Hadoop 或 Amazon Web Services 上运行 MapReduce 任务。
- dask:用于分析计算的灵活的并行计算库。
- PySpark:Spark 的 Python API 。
- Ray:一个用于并行和分布式 Python 的系统,它统一了机器学习生态系统。
- faust:一个 Python 流处理库,核心思想来源 Kafka Streams。
- streamparse:运行针对事实数据流的 Python 代码。集成了 Apache Storm。
- mars:是基于张量的,用于进行大规模数据计算的统一计算框架。
30.分发(Distribution)
打包为可执行文件以便分发。
- PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。
- cx_Freeze:将python程序转换为带有一个动态链接库的可执行文件。
- dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。
- Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。
- py2app:将 Python 脚本变为独立软件包(Mac OS X)。
- py2exe:将 Python 脚本变为独立软件包(Windows)。
- pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python 本身。
- pyarmor:一个用于加密 python 脚本的工具,也可以将加密后的脚本绑定到固件上,或设置已加密脚本的有效期。
- shiv:一个命令行工具,可用于构建完全独立的 zip 应用(PEP 441 所描述的那种),同时包含了所有的依赖项。
31.文档(Documentation)
用以生成项目文档的库。
- pdoc:一个可以替换 Epydoc 的库,可以自动生成 Python 库的 API 文档。
- Pycco:文学编程(literate-programming)风格的文档生成器。
32.下载器(Downloader)
用来进行下载的库.
- s3cmd:一个用来管理 Amazon S3 和 CloudFront 的命令行工具。
- s4cmd:超级 S3 命令行工具,性能更加强劲。
- you-get:一个 YouTube/Youku/Niconico 视频下载器,使用 Python 3 编写。
- youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。
- akshare:为方便人使用而创建的金融数据接口库。
33.电子商务(E-commerce)
用于电子商务以及支付的框架和库。
- django-oscar:一个用于 Django 的开源的电子商务框架。
- django-shop:一个基于 Django 的店铺系统。
- Cartridge:一个基于 Mezzanine 构建的购物车应用。
- shoop:一个基于 Django 的开源电子商务平台。
- alipay:非官方的 Python 支付宝 API。
- merchant:一个可以接收来自多种支付平台支付的 Django 应用。
- money:一个货币类库。带有可选的 CLDR 后端本地化格式,提供可扩展的货币兑换解决方案。
- python-currencies:显示货币格式以及它的数值。
- forex-python:外汇汇率,比特币价格指数和货币换算。
- saleor:一款兼容 Django 的电子商务平台。
34.编辑器插件和 IDE(Editor Plugins and IDEs)
- Sublime Text
- anaconda:Anaconda 可将功能齐全的 Python 开发 IDE 转换为 Sublime Text 3。
- SublimeJEDI:一个很棒的自动补全库 Jedi 的Sublime Text 插件。
- Vim
- jedi-vim:用于 Python 的 Jedi 自动补全库的 Vim 绑定。
- python-mode:一个将 Vim 转换为 Python IDE 的多合一插件。
- YouCompleteMe:包含 Jedi 补全的 Python 引擎。
- Visual Studio
- PTVS:Visual Studio Python 工具。
- Visual Studio Code
- Python:对 Python 有丰富支持的官方 VSCode 扩展。
- IDE
- PyCharm:JetBrains 提供的商业 Python IDE,也有免费的社区版。
- spyder: 开源 Python IDE。
35.电子邮件(Email)
用来发送和解析电子邮件的库。
邮件服务器:
- modoboa:一个邮件托管和管理平台,具有现代的、简约的 Web UI。
- salmon:一个 Python 邮件服务器。
客户端 :
- yagmail:yagmail是一个GMAIL / SMTP客户端,旨在使其尽可能简单地发送电子邮件。
- imbox:Python IMAP 库。
其他:
- flanker:一个 email 地址和 Mime 解析库。
- mailer:一款高性能可扩展的邮件投递框架。
- inbox:一个开源电子邮件工具箱。
36.企业级应用集成(Enterprise Application Integrations)
企业级环境中用于集成的平台与工具。
- Zato:ESB, SOA, REST, APIs 以及云的 Python 整合。
37.环境管理(Environment Management)
管理 Python 版本和环境的工具
- pyenv:简单的 Python 版本管理工具。
- Vex:可以在虚拟环境中执行命令。
- virtualenv:创建独立 Python 环境的工具。
38.文件(Files)
文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。
- aiofiles:基于 asyncio,提供文件异步操作。
- imghdr:(Python 标准库)检测图片类型。
- mimetypes:(Python 标准库)将文件名映射为 MIME 类型。
- path.py:对 os.path 进行封装的模块。
- pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。
- python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。
- Unipath:用面向对象的方式操作文件和目录。
- watchdog:管理文件系统事件的 API 和 shell 工具。
- PyFilesystem2:Python 的文件系统抽象层。
39.外来函数接口(Foreign Function Interface)
使用外来函数接口的库。
- cffi:用来调用 C 代码的外来函数接口。
- ctypes:(Python 标准库) 用来调用 C 代码的外来函数接口。
- PyCUDA:Nvidia CUDA API 的封装。
- SWIG:简化的封装和接口生成器。
40.表单(Forms)
进行表单操作的库。
- Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发。
- django-bootstrap3:集成了 Bootstrap 3 的 Django。
- django-bootstrap4:集成了 Bootstrap 4 的 Django。
- django-crispy-forms:一个 Django 应用,他可以让你以一种非常优雅且 DRY (Don't repeat yourself) 的方式来创建美观的表单。
- django-remote-forms:一个平台独立的 Django 表单序列化工具。
- W TForms:一个灵活的表单验证和呈现库。
41.函数式编程(Functional Programming)
使用 Python 进行函数式编程。
- CyToolz:Toolz 的 Cython 实现:高性能函数式工具。
- fn.py:在 Python 中进行函数式编程:实现了一些享受函数式编程缺失的功能。
- funcy:炫酷又实用的函数式工具。
- Toolz:一组用于迭代器,函数和字典的函数式编程工具。
- Coconut:为了简单、优雅、更 Pythonic 的函数式编程而构建的 Python 变体。
- more-itertools:比 itertools
拥有更多的可迭代对象的操作方式。 - returns:一个类型安全的单元、转换器与合成工具集合。
42.图形用户界面(GUI Development)
用来创建图形用户界面程序的库。
- curses:内建的 ncurses 封装,用来创建终端图形用户界面。
- enaml:使用类似 QML 的 Declaratic 语法来创建美观的用户界面。
- kivy:一个用来创建自然用户交互(NUI)应用程序的库,可以运行在 Windows, Linux, Mac OS X, Android 以及 iOS 平台上。
- pyglet:一个 Python 的跨平台窗口及多媒体库。
- PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。
- PySide:跨平台用户界面框架 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 技术进行界面的展示。
- Eel:用于制作简单离线 HTML/JS GUI 应用的库。
- PySimpleGUI:tkinter,Qt,WxPython 和 Remi 的封装。
- pywebview:围绕网页视图组件的轻量级跨平台的原生包装。
- DearPyGui:一个简单的可使用 GPU 加速的 Python GUI 框架。
43.GraphQL(GraphQL)
GraphQL 相关库。
- graphene:Python GraphQL 框架。
- tartiflette-aiohttp:Tartiflette 的基于 aiohttp 的装饰器,用于通过 HTTP 公开 GraphQL API。
- tartiflette-asgi:Tartiflette GraphQL 引擎的 ASGI 支持。
- tartiflette:支持 Python 3.6+ 和 asyncio 的 SDL 优先的 GraphQL 引擎实现。
44.游戏开发(Game Development)
超赞的游戏开发库。
- 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)引擎。
- Arcade:一个现代 Python 框架,用于制作具有引人入胜的图形与声音的游戏。
- Harfang3D:支持3D,VR 与游戏开发的 Python 框架。
45.地理位置(Geolocation)
地理编码地址以及用来处理经纬度的库。
- GeoDjango:世界级地理图形 web 框架。
- GeoIP:MaxMind GeoIP Legacy 数据库的 Python API。
- geojson:GeoJSON 的 Python 绑定及工具。
- geopy:Python 地址编码工具箱。
- django-countries:一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。
- pygeoip:Python GeoIP 接口。
46.HTML 处理(HTML Manipulation)
处理 HTML 和 XML 的库。
- BeautifulSoup:以 Python 风格的方式来对 HTML 或 XML 进行迭代,搜索和修改。
- bleach:一个基于白名单的 HTML 清理和文本链接库。
- cssutils:一个 Python 的 CSS 库。
- html5lib:一个兼容标准的 HTML 文档和片段解析及序列化库。
- lxml:一个非常快速,简单易用,功能齐全的库,用来处理 HTML 和 XML。
- MarkupSafe:为 Python 实现 XML/HTML/XHTML 标记安全字符串。
- pyquery:一个解析 HTML 的库,类似 jQuery。
- requests-html:人性化的,Pythonic 的 HTML 解析库。
- untangle:将 XML 文档转换为 Python 对象,使其可以方便的访问。
- xhtml2pdf:HTML/CSS 转 PDF 工具。
- xmltodict:像处理 JSON 一样处理 XML。
- WeasyPrint:用于HTML和CSS的可视化呈现引擎,并可以导出为 PDF。
- xmldataset:简单 XML 解析。
47.HTTP
使用 HTTP 的库。
- aiohttp:基于 asyncio 的异步 HTTP 网络库。
- requests:人性化的 HTTP 请求库。
- grequests:requests 库 + gevent ,用于异步 HTTP 请求。
- httplib2:全面的 HTTP 客户端库。
- treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上。
- urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。
- httpx:下一代 Python HTTP 客户端。
48.硬件(Hardware)
用来对硬件进行编程的库。
- ino:操作 Arduino 的命令行工具。
- Pyro:Python 机器人编程库。
- PyUserInput:跨平台的,控制鼠标和键盘的模块。
- scapy:一个非常棒的操作数据包的库。
- wifi:一个 Python 库和命令行工具用来在 Linux 平台上操作 WiFi。
- Pingo:Pingo 为类似 Raspberry Pi,pcDuino, Intel Galileo 等设备提供统一的 API 用以编程。
- keyboard:在 Windows 和 Linux 上挂钩并模拟全局键盘事件。
- mouse:在 Windows 和 Linux 上挂钩并模拟全局鼠标事件。
49.图像处理(Image Processing)
用来操作图像的库.
- pillow:Pillow 是一个更加易用版的 PIL。
- hmap:图像直方图映射。
- imgSeek:一个使用视觉相似性搜索一组图片集合的项目。
- nude.py:裸体检测。
- python-barcode:不借助其他库在 Python 程序中生成条形码。
- pygram:类似 Instagram 的图像滤镜。
- python-qrcode:一个纯 Python 实现的二维码生成器。
- Quads:基于四叉树的计算机艺术。
- scikit-image:一个用于(科学)图像处理的 Python 库。
- thumbor:一个小型图像服务,具有剪裁,尺寸重设和翻转功能。
- wand:MagickWand 的 Python 绑定。MagickWand 是 ImageMagick 的 C API 。
- face_recognition:简单易用的 Python 人脸识别库。
- pagan:基于输入和哈希的复古风图标(头像)生成工具。
- PyMatting:支持 alpha matting 的库。
- pywal:由图像生成配色方案的工具。
- pyvips:低内存消耗且快速的图像处理库。
50.高性能(Implementations)
让 Python 更快的库。
- Cython:优化的 Python 静态编译器。使用类型混合使 Python 编译成 C 或 C++ 模块来获得性能的极大提升。
- CLPython:用 Common Lisp 编写的 Python 编程语言的实现。
- Grumpy:编译器比解释器更强大的 cpython2.7 替代品(alpha)。
- IronPython:用 C# 编写的 Python 编程语言的实现。
- Jython:为 JVM 用 Java 编写的 Python 编程语言的实现。
- MicroPython:精简高效的 Python 编程语言实现。
- Pyjion:基于 CoreCLR 的 Python JIT。
- Numba:Python JIT (just in time) 编译器,针对科学用的 Python ,由 Cython 和 NumPy 的开发者开发。
- PeachPy:嵌入 Python 的 x86-64 汇编器。可以被用作 Python 内联的汇编器或者是独立的汇编器,用于 Windows,Linux,OS X,Native Client 或者 Go 。
- PyPy:使用 Python 实现的 Python。解释器使用黑魔法加快 Python 运行速度且不需要加入额外的类型信息。
- Pyston:使用 LLVM 和现代 JIT 技术构建的 Python 实现,目标是为了获得很好的性能。
- Stackless Python:一个强化版的 Python。
51.交互式解析器(Interactive Interpreter)
交互式 Python 解析器。
- IPython:功能丰富的工具,非常有效的使用交互式 Python。
- bpython:界面丰富的 Python 解析器。
- ptpython:高级交互式 Python 解析器, 构建于 python-prompt-toolkit 之上。
- Jupyter Notebook (IPython):一个能够让你最大限度地以交互式方式使用 Python 的丰富工具包。
52.国际化(Internationalization)
用来进行国际化的库。
- Babel:一个 Python 的国际化库。
- PyICU:一个封装了 ICU C++ 库的 Python 扩展。
53.任务调度(Job Scheduler)
任务调度库。
- APScheduler:轻巧但强大的进程内任务调度,使你可以调度函数。
- django-schedule:一个 Django 排程应用。
- doit:一个任务执行和构建工具。
- gunnery:分布式系统使用的多用途任务执行工具 ,具有 web 交互界面。
- Joblib:一组为 Python 提供轻量级作业流水线的工具。
- Plan:如有神助地编写 crontab 文件。
- schedule:人性化的 Python 任务调度库。
- Spiff:使用纯 Python 实现的强大的工作流引擎。
- TaskFlow:一个可以让你方便执行任务的 Python 库,一致并且可靠。
- Airflow :是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。
- Prefect:一个现代的工作流程编排框架,使构建、计划和监视健壮的数据管道变得容易。
54.日志(Logging)
用来生成和操作日志的库。
- logging:(Python 标准库) 为 Python 提供日志功能。
- logbook:Logging 库的替代品。
- Eliot:为复杂的和分布式系统创建日志。
- Raven:Sentry 的 Python 客户端。
- Sentry:实时记录和收集日志的服务器。
- sentry-python:Python 版 Sentry SDK。
- loguru:旨在带来愉悦体验的 Python 日志库。
- structlog:结构化日志,让日志变得简单。
55.机器学习(Machine Learning)
机器学习相关库,也可以参考 awesome-machine-learning。
- Crab:灵活、快速的推荐引擎。
- NuPIC:智能计算 Numenta 平台。
- pattern:Python 网络挖掘模块。
- PyBrain:另一个 Python 机器学习库。
- Pylearn2:一个基于 Theano 的机器学习库。
- python-recsys:一个用来实现推荐系统的 Python 库。
- scikit-learn:基于 SciPy 构建的机器学习 Python 模块。
- vowpalporpoise:轻量级 Vowpal Wabbit 的 Python 封装。
- gym:开发和比较强化学习算法的工具包。
- H2O:开源快速可扩展的机器学习平台。
- Metrics:机器学习的评估指标。
- vowpal_porpoise:Python 版 Vowpal Wabbit 装饰器。
- xgboost:可扩展,便携式和分布式梯度提升库。
- MindsDB:MindsDB 是现有数据库的开源 AI 层,可让使用标准查询轻松地进行开发,训练和部署最新的机器学习模型。
56.微软的 Windows 平台(Microsoft Windows)
在 Windows 平台上进行 Python 编程。
- Python(x,y):面向科学应用的 Python 发行版,基于 Qt 和 Spyder。
- pythonlibs:非官方的 Windows 平台 Python 扩展二进制包。
- PythonNet:Python 与 .NET 公共语言运行库 (CLR)的集成。
- PyWin32:针对 Windows 的 Python 扩展。
- WinPython:Windows 7/8 系统下便携式开发环境。
57.杂项(Miscellaneous)
不属于上面任何一个类别,但是非常有用的库。
- blinker:快速的 Python 运行时信号/事件分配系统。
- boltons:一组纯 Python 实用工具。
- itsdangerous:将受信任的数据传递到不受信任的环境的帮助工具。
- magenta:使用人工智能生成音乐与艺术的工具。
- pluginbase:一个简单但灵活的 Python 插件系统。
- tryton:一个通用业务框架
58.自然语言处理(Natural Language Processing)
用来处理人类语言的库。
- NLTK:一个先进的平台,用以构建处理人类语言数据的 Python 程序。
- gensim:人性化的话题建模库。
- jieba:中文分词工具。
- langid.py:独立的语言识别系统。
- Pattern:Python 网络信息挖掘模块。
- SnowNLP:一个用来处理中文文本的库。
- TextBlob:为进行普通自然语言处理任务提供一致的 API。
- TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。
- thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包。
- polyglot:支持数百种语言的自然语言处理管道。
- pytext:基于 PyTouch 的自然语言模型框架。
- PyTorch-NLP:一个支持快速深度学习 NLP 原型研究的工具包。
- spacy:Python 和 Cython 中用于工业级自然语言处理的库。
- Stanza:斯坦福 NLP 集团的官方 Python 库,支持 60 多种语言。
- funNLP:中文自然语言处理的工具和数据集。
- pkuseg-python:一个支持对不同领域进行中文分词的工具箱。
59.网络可视化和 SDN(Network Virtualization)
用来进行网络可视化和 SDN(软件定义网络)的工具和库。
- Mininet:一款流行的网络模拟器以及用 Python 编写的 API。
- POX:一个针对基于 Python 的软件定义网络应用(例如 OpenFlow SDN 控制器)的开源开发平台。
- Pyretic:火热的 SDN 编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力。
- napalm:可跨供应商 API 来操纵网络设备。
60.动态消息(News Feed)
用来创建用户活动的库。
- django-activity-stream:从你的站点行为中生成通用活动信息流。
- Stream-Framework:使用 Cassandra 和 Redis 创建动态消息和通知系统。
61.ORM
实现对象关系映射或数据映射技术的库。
- 关系型数据库
- Django Models:Django 的一部分。
- SQLAlchemy:Python SQL 工具以及对象关系映射工具。
- Peewee:一个小巧,富有表现力的 ORM。
- PonyORM:提供面向生成器的 SQL 接口的 ORM。
- python-sql:编写 Python 风格的 SQL 查询。
- dataset:在数据库中存储字典,支持 SQLite,MySQL 和 PostgreSQL。
- orator:Orator ORM,提供了一个简单而美观的 ActiveRecord 实现。
- orm:一个异步的 ORM。
- pony:提供面向生成器的SQL接口的ORM。
- pydal:纯 Python 数据库抽象接口层。
- 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。
62.包管理(Package Management)
管理包和依赖的工具。
- pip:Python 包和依赖关系管理工具。
- pip-tools:保证 Python 包依赖关系更新的一组工具。
- PyPI:Python 正式的第三方包软件存储库。
- pipenv:Python 官方推荐的新一代包管理工具。
- poetry:可完全取代 setup.py 的包管理工具。
- conda:跨平台的 Python 二进制包管理工具。
- Curdling:管理 Python 包的命令行工具。
- wheel:Python 分发的新标准,意在取代 eggs。
63.包仓库(Package Repositories)
本地 PyPI 仓库服务和代理。
- warehouse:下一代 PyPI。
- bandersnatch:PyPA 提供的 PyPI 镜像工具。
- devpi:PyPI 服务和打包/测试/分发工具。
- localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。
64.渗透测试(Penetration Testing)
渗透测试相关框架和工具。
- fsociety:一款渗透测试框架。
- setoolkit:社会工程工具包。
- sqlmap:自动 SQL 注入和数据库接管工具。
65.权限(Permissions)
允许或拒绝用户访问数据或功能的库。
- Carteblanche:站在用户和设计者角度开发的一个代码对齐模块,很好地处理了代码导航及权限。
- django-guardian:Django 1.2+ ,实现了单个对象权限。
- django-rules:一个小巧但是强大的应用,提供对象级别的权限管理,且不需要使用数据库。
66.进程(Processes)
操作系统进程启动及通信库。
- envoy:比 Python subprocess 模块更人性化。
- sarge:另一 种 subprocess 模块的封装。
- sh:一个完备的 subprocess 替代库。
- delegator.py:人性化的 Subprocesses 2.0 版本。
67.推荐系统(Recommender Systems)
用于构建推荐系统的相关库。
- annoy:对 C++/Python 实现的近似近邻算法进行了内存优化。
- fastFM:Factorization Machine 相关库。
- implicit:对隐式数据集进行协作过滤的快速 Python 实现。
- libffm:Field-aware Factorization Machine (FFM) 相关库。
- lightfm:很多流行的推荐算法的 Python 实现。
- spotlight:使用 PyTorch 实现的深度推荐模型。
- Surprise:用于构建和分析推荐系统的科学工具。
- tensorrec:TensorFlow 的推荐引擎框架。
68.重构(Refactoring)
Python 重构相关库和工具。
- Bicycle Repair Man:Python 的重构工具。
- Bowler:适用于现代Python的安全代码重构。
- Rope:一个 Python 的重构库。
69.RESTful API
用来开发 RESTful APIs 的库
- Django
- django-rest-framework:一个强大灵活的工具,用来构建 web API。
- django-tastypie:为 Django 应用开发 API。
- Flask
- flask-api:为 flask 开发的,可浏览 Web APIs 。
- flask-restful:为 flask 快速创建 REST APIs 。
- eve:REST API 框架,由 Flask, MongoDB 等驱动。
- Pyramid
- cornice:一个 Pyramid 的 REST 框架 。
- 与框架无关的
- falcon:一个用来建立云 API 和 web app 后端的高性能框架。
- sandman:为现存的数据库驱动系统自动创建 REST APIs 。
- restless:框架无关的 REST 框架 ,基于从 Tastypie 学到的知识。
- apistar:专为Python 3设计的智能 Web API 框架。
- fastapi:一个现代,快速,基于标准 Python 类型注解的的 web框架,可使用 Python3.6+ 版本构建 API。
- hug:一个为纯净公开的 API 打造的 Python 3 框架。
- sandman2:为数据库驱动的系统自动生成 REST API。
- vibora:快速高效且支持异步的 Web 框架,灵感来源于 Flask。
70.机器人(Robotics)
机器人相关库。
- PythonRobotics:各种具有可视化效果的机器人算法的汇总。
- rospy:ROS (Robot Operating System) 库。
71.RPC 服务器(RPC Servers)
兼容 RPC 的服务器。
- SimpleJSONRPCServer:这个库是 JSON-RPC 规范的一个实现。
- SimpleXMLRPCServer:(Python 标准库) 简单的 XML-RPC 服务器实现,单线程。
- zeroRPC:zerorpc 是一个灵活的 RPC 实现,基于 ZeroMQ 和 MessagePack。
- RPyC (Remote Python Call):适用于 Python 的透明且对称的RPC库。
72.科学计算(Science)
- astropy:一个天文学 Python 库。
- bcbio-nextgen:这个工具箱为全自动高通量测序分析提供符合最佳实践的处理流程。
- bccb:生物分析相关代码集合。
- Biopython:Biopython 是一组可以免费使用的用来进行生物计算的工具。
- cclib:一个用来解析和解释计算化学软件包输出结果的库。
- Colour:大量色彩理论转换和算法的实现。
- Karate Club:用于图形结构化数据的无监督机器学习工具箱。
- NIPY:神经影响学工具箱集合。
- ObsPy:地震学 Python 工具箱。
- QuTiP:Python 版 Quantum 工具箱。
- SimPy:一个基于过程的离散事件模拟框架。
- NetworkX:一个为复杂网络设计的高性能软件。
- Neupy:执行和测试各种不同的人工神经网络算法。
- NumPy:使用 Python 进行科学计算的基础包。
- Open Babel:一个化学工具箱,用来描述多种化学数据。
- PyDy:PyDy 是 Python Dynamics 的缩写,用来为动力学运动建模工作流程提供帮助, 基于 NumPy, SciPy, IPython 和 matplotlib。
- PyMC:马尔科夫链蒙特卡洛采样工具。
- RDKit:化学信息学和机器学习软件。
- SciPy:由一些基于 Python ,用于数学,科学和工程的开源软件构成的生态系统。
- statsmodels:统计建模和计量经济学。
- SymPy:一个用于符号数学的 Python 库。
- zipline:一个 Python 算法交易库。
73.搜索(Search)
对数据进行索引和执行搜索查询的库和软件。
- django-haystack:Django 模块化搜索。
- elasticsearch-py:Elasticsearch 的官方底层 Python 客户端。
- elasticsearch-dsl-py:Elasticsearch 的官方高级 Python 客户端。
- solrpy:solr 的 Python 客户端。
- pysolr:支持 Apache Solr 的轻量级 Python 装饰器。
- Whoosh:一个快速的纯 Python 搜索引擎库。
74.序列化(Serialization)
复杂数据类型序列化相关库。
- marshmallow:一个轻量级的库,用于将复杂对象与简单 Python 数据类型相互转换。
- pysimdjson:与 Python 绑定的 simdjson 。
- python-rapidjson: RapidJSON 的 Python 封装。
- ultrajson:使用 Python 绑定的,用 C 编写的快速 JSON 解码器和编码器。
75.Serverless 框架(Serverless Frameworks)
使用 Python 开发 Serverless 模型相关的库。
- python-lambda :在 AWS Lambda 开发和部署 Python 代码的工具包。
- Zappa:在 AWS Lambda 和 API Gateway 部署 WSGI 应用的工具。
76.Shell
- xonsh:一种基于 python 的跨平台,面向 unix 的 shell 语言和命令提示符。
77.特殊文本格式处理(Specific Formats Processing)
一些用来解析和操作特殊文本格式的库。
- Office
- Marmir:把输入的 Python 数据结构转换为电子表单。
- openpyxl:一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。
- pyexcel:一个提供统一 API,用来读写,操作 Excel 文件的库。
- python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。
- python-pptx:可用于创建和修改 ppt 文件的 Python 库。
- relatorio:模板化 OpenDocument 文件。
- unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。
- XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。
- xlwings:一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。
- xlwt / xlrd:读写 Excel 文件的数据和格式信息。
- docxtpl:通过 jinja2 模版编辑 docx 文档。
- PDF
- PDFMiner:一个用于从 PDF 文档中抽取信息的工具。
- PyPDF2:一个可以分割,合并和转换 PDF 页面的库。
- ReportLab:快速创建富文本 PDF 文档。
- Markdown
- Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器。
- Python-Markdown:John Gruber’s Markdown 的 Python 版实现。
- Python-Markdown2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展。
- YAML
- PyYAML:Python 版本的 YAML 解析器。
78.静态站点生成器(Static Site Generator)
静态站点生成器是一个软件,它把文本和模板作为输入,然后输出 HTML 文件。
- Pelican:使用 Markdown 或 ReST 来处理内容, Jinja 2 来制作主题。支持 DVCS, Disqus.。AGPL 许可。
- Cactus:为设计师设计的静态站点生成器。
- Hyde:基于 Jinja2 的静态站点生成器。
- Nikola:一个静态网站和博客生成器。
- Tinkerer:Tinkerer 是一个博客引擎/静态站点生成器,由 Sphinx 驱动。
- Lektor:一个简单易用的静态 CMS 和博客引擎。
- makesite:简单轻量的站点/博客生成器(小于 130 行代码)。
79.标记(Tagging)
用来进行标记的库。
- django-taggit:简单的 Django 标记工具。
80.队列(Task Queues)
处理事件以及任务队列的库。
- celery:一个异步任务队列/作业队列,基于分布式消息传递
- daramatiq:适用于Python 3的快速可靠的后台任务处理库。
- huey:小型多线程任务队列。
- mrq:一个 Python 的分布式 worker 任务队列, 使用 Redis 和 gevent。
- rq:简单的 Python 作业队列。
- simpleq:一个简单的,可无限扩张的,基于亚马逊 SQS 的队列。
81.模板引擎(Template Engine)
模板生成和词法解析的库和工具。
- Jinja2:一个现代的,对设计师友好的模板引擎。
- Chameleon:一个 HTML/XML 模板引擎。 模仿了 ZPT(Zope Page Templates), 进行了速度上的优化。
- Genshi:Python 模板工具,用以生成 web 感知的结果。
- Mako:Python 平台的超高速轻量级模板。
82.测试(Testing)
进行代码库测试和生成测试数据的库。
- 测试框架
- unittest:(Python 标准库) 单元测试框架。
- nose:nose 扩展了 unittest 的功能。
- nose2 nose
的继任者,基于 unittest2
。 - contexts:一个 Python 3.3+ 的 BDD 框架。受到 C# Machine.Specifications 的启发。
- hypothesis:Hypothesis 是一个基于先进的 Quickcheck 风格特性的测试库。
- mamba:Python 的终极测试工具, 拥护 BDD。
- pyshould:Should 风格的断言,基于 PyHamcrest。
- pytest:一个成熟的全功能 Python 测试工具。
- green:干净,多彩的测试工具。
- pyvows:BDD 风格的测试工具,受 Vows.js 的启发。
- Robot Framework:一个通用的自动化测试框架。
- tox:自动化测试与发布的工具,支持多个 Python 版本。
- GUI / Web 测试
- Selenium:Selenium WebDriver 的 Python 绑定。
- PyAutoGUI:PyAutoGUI 是一个人性化的跨平台 GUI 自动测试模块。
- locust:使用 Python 编写的,可扩展的用户加载测试工具。
- sixpack:一个和语言无关的 A/B 测试框架。
- splinter:开源的 web 应用测试工具。
- Schemathesis:基于属性的自动测试工具,用于测试使用 Open API / Swagger 规范构建的 Web 应用程序。
- Mock 测试
- mock:(Python 标准库) 一个用于伪造测试的库。
- doublex:Python 的一个功能强大的 doubles 测试框架。
- freezegun:通过伪造日期模块来生成不同的时间。
- httmock:针对 Python 2.6+ 和 3.2+ 生成 伪造请求的库。
- httpretty:Python 的 HTTP 请求 mock 工具。
- responses:伪造 Python 中的 requests 库的一个通用库。
- VCR.py:在你的测试中记录和重放 HTTP 交互。
- mocket:gevent/asyncio/SSL 支持的 socket mock 框架。
- 对象工厂
- factoryboy:一个 Python 用的测试固件 (test fixtures) 替代库。
- mixer:另外一个测试固件 (test fixtures) 替代库,支持 Django, Flask, SQLAlchemy, Peewee 等。
- modelmommy:为 Django 测试创建随机固件。
- 代码覆盖率
- coverage:代码覆盖率测量。
- Codecov:一个代码覆盖率测试工具,为开源项目提供免费代码覆盖率测试服务。
- 伪数据
- faker:一个 Python 库,用来生成伪数据。
- fake2db:伪数据库生成器。
- mimesis:一个帮助你生成伪数据的 Python 库。
- radar:生成随机的日期/时间。
- 错误处理
- Fu ckIt.py:使用最先进的技术来保证你的 Python 代码无论对错都能继续运行。
83.文本处理(Text Processing)
用于解析和操作文本的库。
- 通用
- chardet:字符编码检测器,兼容 Python 2 和 Python 3。
- difflib:(Python 标准库)帮助我们进行差异化比较。
- ftfy:让 Unicode 文本更完整更连贯。
- thefuzz:模糊字符串匹配。
- Levenshtein:快速计算编辑距离以及字符串的相似度。
- pangu.py:在中日韩语字符和数字字母之间添加空格。
- pypinyin:汉字拼音转换工具 Python 版。
- unidecode:Unicode 文本的 ASCII 转换形式 。
- pyfiglet:figlet 的 Python 实现。
- textdistance:支持 30 多种算法来计算序列之间的距离。
- Slug 化
- awesome-slugify:一个 Python slug 化库,可以保持 Unicode。
- python-slugify:Python slug 化库,可以把 unicode 转化为 ASCII。
- unicode-slugify:一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。
- 解析器
- phonenumbers:解析,格式化,储存,验证电话号码。
- python-phonenumbers:解析,格式化,存储,校验国际电话号码。
- PLY:lex 和 yacc 解析工具的 Python 实现。
- Pygments:通用语法高亮工具。
- pyparsing:生成通用解析器的框架。
- python-nameparser:把一个人名分解为几个独立的部分。
- python-user-agents:浏览器 user agent 解析器。
- sqlparse:一个无验证的 SQL 解析器。
84.第三方 API(Third-party APIs)
用来访问第三方 API 的库。 参见: List of Python API Wrappers and Libraries。
- apache-libcloud:一个为各种云设计的 Python 库。
- boto3:Amazon Web Services 的 Python 接口。
- django-wordpress:Django 的 WordPress 模型与视图。
- 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 的封装。
85.URL 处理(URL Manipulation)
解析 URLs 的库
- furl:一个让处理 URL 更简单小型 Python 库。
- purl:一个简单的,不可变的 URL 类,具有简洁的 API 来进行询问和处理。
- pyshorteners:一个纯 Python URL 缩短库。
- shorturl:生成短小 URL 和类似 bit.ly 短链的 Python 实现。
- webargs:一个解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。
86.视频(Video)
用来操作视频和 GIF 的库。
- moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。
- scikit-video:SciPy 视频处理常用程序。
- vidgear: 强大的多线程视频处理框架。
87.Web 资源管理(Web Asset Management)
管理、压缩、缩小网站资源的工具。
- django-compressor:将链接和内联的 JavaScript 或 CSS 压缩到一个单独的缓存文件中。
- django-pipeline:Django 的资源包装库。
- django-storages:一个针对 Django 的自定义存储后端的工具集合。
- fanstatic:打包、优化,并且把静态文件依赖作为 Python 的包来提供。
- File Conveyor:一个后台驻留的程序,用来发现和同步文件到 CDNs, S3 和 FTP。
- Flask-Assets:帮你将 web 资源整合到你的 Flask app 中。
- jinja-assets-compressor:一个 Jinja 扩展,用来编译和压缩你的资源。
- webassets:为你的静态资源打包、优化和管理生成独一无二的缓存 URL。
88.网页内容提取(Web Content Extracting)
用于进行网页内容提取的库。
- Haul:一个可以扩展的图像爬取工具。
- html2text:将 HTML 转换为 Markdown 格式文本。
- lassie:人性化的网页内容检索库。
- micawber:一个小型网页内容提取库,用来从 URLs 提取富内容。
- newspaper:使用 Python 进行新闻提取,文章提取以及内容策展。
- opengraph:一个用来解析开放内容协议(Open Graph Protocol)的 Python 模块。
- python-goose:HTML 内容/文章提取器(python2)。
- goose3:HTML 内容/文章提取器(python3)。
- python-readability:arc90 公司 readability 工具的 Python 高速端口。
- sanitize:为杂乱的数据世界带来调理性。
- sumy:一个为文本文件和 HTML 页面进行自动摘要的模块。
- textract:从任何格式的文档中提取文本,Word,PowerPoint,PDFs 等等。
89.网络爬取(Web Crawling)
自动化web抓取的库。
- Scrapy:一个快速高级的屏幕爬取及网页采集框架。
- ScrapydWeb:一个用于 Scrapyd 集群管理的全功能 web UI,支持 Scrapy 日志分析和可视化,自动打包,定时器任务和邮件通知等特色功能。
- cola:一个分布式爬虫框架。
- Demiurge:基于 PyQuery 的爬虫微型框架。
- feedparser:通用 feed 解析器。
- Grab:站点爬取框架。
- MechanicalSoup:用于自动和网络站点交互的 Python 库。
- portia:Scrapy 可视化爬取。
- pyspider:一个强大的爬虫系统。
- RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。
90.Web 框架(Web Frameworks)
全栈 Web 框架。
- Django:Python 界最流行的 web 框架。
- awesome-django(by shahraizali) 系列
- awesome-django(by wsvincent) 系列
- Flask:一个 Python 微型框架。
- Pyramid:一个小巧,快速,接地气的开源 Python web 框架。
- Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。
- CherryPy:一个极简的 Python web 框架,服从 HTTP/1.1 协议且具有 WSGI 线程池。
- TurboGears:一个可以扩展为全栈解决方案的微型框架。
- web.py:一个 Python 的 web 框架,既简单,又强大。
- web2py:一个全栈 web 框架和平台,专注于简单易用。
- Tornado:一个 web 框架和异步网络库。
- sanic:基于 Python3.5+ 的异步网络框架。
- starlette: 一款轻量级,高性能的 ASGI 框架。
- Masonite:以开发者为中心的现代 Python Web 框架。
91.WebSocket
Web socket 相关库。
- autobahn-python:适用于 Twisted 和 asyncio 的 Python WebSocket 和 WAMP。
- channels:开发者友好的 Django 异步工具。
- websockets:一个用于构建 WebSocket 服务器和客户端的库,着重于正确性和简单性。
92.WSGI 服务器(WSGI Servers)
兼容 WSGI 的 web 服务器
- bjoern:异步,非常快速,由 C 语言编写。
- gunicorn:Pre-forked, 部分是由 C 语言编写的。
- uwsgi:uwsgi 项目的目的是开发一组全栈工具,用来建立托管服务,由 C 语言编写。
- waitress:多线程,是它驱动着 Pyramid 框架。
- Werkzeug:一个 WSGI 工具库,驱动着 Flask,而且可以很方便大嵌入到你的项目中去。
- fapws3:异步 (仅对于网络端),由 C 语言编写。
- meinheld:异步,部分是由 C 语言编写的。
- netius:异步,非常快速。
- paste:多线程,稳定,久经考验。
- rocket:多线程。
内容整理不易,如果觉得有帮助,就麻烦点个赞支持一下吧!
0个必不可少的Python库也是基本的第三方库
读者您好。今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们。他们是:
- Requests.Kenneth Reitz写的最富盛名的http库。每个Python程序员都应该有它。
- Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的。用过它之后你就不会再想用别的同类库了。
- wxPython.Python的一个GUI(图形用户界面)工具。我主要用它替代tkinter。你一定会爱上它的。
- Pillow.它是PIL(Python图形库)的一个友好分支。对于用户比PIL更加友好,对于任何在图形领域工作的人是必备的库。
- SQLAlchemy.一个数据库的库。对它的评价褒贬参半。是否使用的决定权在你手里。
- BeautifulSoup.我知道它很慢,但这个xml和html的解析库对于新手非常有用。
- Twisted.对于网络应用开发者最重要的工具。它有非常优美的api,被很多Python开发大牛使用。
- NumPy.我们怎么能缺少这么重要的库?它为Python提供了很多高级的数学方法。
- SciPy.既然我们提了NumPy,那就不得不提一下SciPy。这是一个Python的算法和数学工具库,它的功能把很多科学家从Ruby吸引到了Python。
- matplotlib.一个绘制数据图的库。对于数据科学家或分析师非常有用。
- Pygame.哪个程序员不喜欢玩游戏和写游戏?这个库会让你在开发2D游戏的时候如虎添翼。
- Pyglet.3D动画和游戏开发引擎。非常有名的Python版本Minecraft就是用这个引擎做的。
- pyQT.Python的GUI工具。这是我在给Python脚本开发用户界面时次于wxPython的选择。
- pyGtk.也是Python GUI库。很有名的Bittorrent客户端就是用它做的。
- Scapy.用Python写的数据包探测和分析库。
- pywin32.一个提供和windows交互的方法和类的Python库。
- nltk.自然语言工具包。我知道大多数人不会用它,但它通用性非常高。如果你需要处理字符串的话,它是非常好的库。但它的功能远远不止如此,自己摸索一下吧。
- nose.Python的测试框架。被成千上万的Python程序员使用。如果你做测试导向的开发,那么它是必不可少的。
- SymPy.SymPy可以做代数评测、差异化、扩展、复数等等。它封装在一个纯Python发行版本里。
- IPython.怎么称赞这个工具的功能都不为过。它把Python的提示信息做到了极致。包括完成信息、历史信息、shell功能,以及其他很多很多方面。一定要研究一下它。
【Python系统运维常用库】
1、psutil是一个跨平台库(http://code.google.com/p/psutil/)
能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理。
2、IPy(http://github.com/haypo/python-ipy),辅助IP规划。
3、dnspython(http://dnspython.org)Python实现的一个DNS工具包。
4、difflib:difflib作为Python的标准模块,无需安装,作用是对比文本之间的差异。
5、filecmp:系统自带,可以实现文件,目录,遍历子目录的差异,对比功能。
6、smtplib:发送电子邮件模块
7、pycurl(http://pycurl.sourceforge.net)是一个用C语言写的libcurl Python实现,功能强大,支持的协议有:FTP,HTTP,HTTPS,TELNET等,可以理解为Linux下curl命令功能的Python封装。
8、XlsxWriter:操作Excel工作表的文字,数字,公式,图表等。
9、rrdtool:用于跟踪对象的变化,生成这些变化的走走势图
10、scapy(http://www.wecdev.org/projects/scapy/)是一个强大的交互式数据包处理程序,它能够对数据包进行伪造或解包,包括发送数据包,包嗅探,应答和反馈等功能。
11、Clam Antivirus免费开放源代码防毒软件,pyClamad,可以让Python模块直接使用ClamAV病毒扫描守护进程calmd。
12、pexpect:可以理解成Linux下expect的Python封装,通过pexpect我们可以实现对ssh,ftp,passwd,telnet等命令行进行自动交互,而无需人工干涉来达到自动化的目的。
13、paramiko是基于Python实现的SSH2远程安装连接,支持认证及密钥方式。可以实现远程命令执行,文件传输,中间SSH代理等功能。相对于Pexpect,封装的层次更高,更贴近SSH协议的功能,官网地址:http://paramiko.org(依赖:Crypto,Ecdsa,Python开发包python-devel)
14、fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括命令执行,文件上传,下载及完整执行日志输出等功能。Fabric在paramiko的基础上做了更高一层的封装,操作起来更加简单。官网地址:http://www.fabfile.org(依赖setuptools,Crypto,paramiko包支持)
15、CGIHTTPRequestHandler实现对CGI的支持。
16、ansible(http://www.ansibleworks.com/)一种集成IT系统的配置管理,应用部署,执行特定任务的开源平台。基于Python实现,由Paramiko和PyYAML两个关键模块构建。Ansibl与Saltstack最大的区别是Ansible无需在被控主机上部署任何客户端,默认直接通过SSH通道进行远程命令执行或下发功能。
17、YAML:是一种用来表达数据序列的编程语言。
18、playbook:一个非常简单的配置管理和多主机部署系统。
19、saltstack(http://saltstack.com)是一个服务器基础架构集中化管理平台,一般可以理解为简化版的puppet和加强版的func。Saltstack基于Python语言实现,结合轻量级消息队列ZeroMQ,与Python每三方模块(Pyzmq,PyCrypto,Pyjinja2,python-msgpack和PyYAML等)构建。
20、func,为解决集群管理,监控问题需设计开发的系统管理基础框架。
Python 有哪些好的 Web 框架? - 知乎 https://www.zhihu.com/question/20706333
standard libs:
itertools http://docs.python.org/2/library/itertools.htmlfunctools http://docs.python.org/2/library/functools.html 学好python有必要掌握上面这两个库吧re 正则subprocess http://docs.python.org/2/library/subprocess.html 调用shell命令的神器pdb 调试traceback 调试pprint 漂亮的输出logging 日志threading和multiprocessing 多线程urllib/urllib2/httplib http库,httplib底层一点,推荐第三方的库requestsos/sys 系统,环境相关Queue 队列pickle/cPickle 序列化工具hashlib md5, sha等hash算法cvsjson/simplejson python的json库,据so上的讨论和benchmark,simplejson的性能要高于jsontimeit 计算代码运行的时间等等cProfile python性能测量模块glob 类似与listfile,可以用来查找文件atexit 有一个注册函数,可用于正好在脚本退出运行前执行一些代码dis python 反汇编,当对某条语句不理解原理时,可以用dis.dis 函数来查看代码对应的python 解释器指令等等。3th libs:
- paramiko https://github.com/paramiko/paramiko ssh python 库
- selenium https://pypi.python.org/pypi/selenium 浏览器自动化测试工具selenium的python 接口
- lxml http://lxml.de/ python 解析html,xml 的神器
- mechanize https://pypi.python.org/pypi/mechanize/ Stateful programmatic web browsing
- pycurl https://pypi.python.org/pypi/pycurl cURL library module for Python
- Fabric http://docs.fabfile.org/en/1.8/ Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.
- xmltodict https://github.com/martinblech/xmltodict xml 转 dict,真心好用
- urllib3 和 requests: 当然其实requests就够了 Requests: HTTP for Humans
- flask http://flask.pocoo.org/python web 微框架
- ipdb 调试神器,同时推荐ipython!结合ipython使用
- redis redis python接口
- pymongo mongodbpython接口
- PIL http://www.pythonware.com/products/pil/ python图像处理
- mako http://www.makotemplates.org/ python模版引擎
- numpy , scipy 科学计算
- matplotlib 画图
- scrapy 爬虫
- django/tornado/web.py/web2py/uliweb/flask/twisted/bottle/cherrypy.等等 python web框架/服务器
- sh 1.08 — sh v1.08 documentation 用来运行shell 模块的 极佳选择
环境管理
管理 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 和类似 http://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
原生:
系统调用的subprocess
多线程的multiprocessing
第三方:
系统管理推荐fabric和salt
WEB框架推荐flask和tornado
ORM推荐SQLAlchemy
功能型的都是各取所需 就说些好用的吧
Tornado: 和其他Python框架的架构可谓大相径庭,Request的处理方式也很舒服,特别适合REST,谁用谁知道
Mako: 个人认为是最好的Template,简单 性能好
SQLAlchemy: 快一统ORM了吧
Quixote:其实还是蛮好用的
pyQuery: 用jQuery的语法写爬虫 略爽
看完有所收获?希望爱学习的你不要吝啬三连击[转发+ 收藏 ]~
关注我的原创公众号:「Python社区营」,更多优质的技术文章第一时间更新。
.很多小伙伴纠结于这个一百天的时间,我觉得完全没有必要,也违背了我最初放这个大纲上来的初衷,我是觉得这个学习大纲还不错,自学按照这个来也能相对系统的学习知识,而不是零散细碎的知识最后无法整合,每个人的基础以及学习进度都不一样,没有必要纠结于一百天这个时间,甭管你是用三个月还是用一年来学习这些东西,最后学到了不就是收获吗?何必纠结于这一百天,觉得这一百天学习不完我就放弃了呢?(另,项目后面没有更新完,大家可以按照这个框架去学习,没有更新完的大家可以自行找资料。)
给初学者的几个建议:
- Make English as your working language.
- Practice makes perfect.
- All experience comes from mistakes.
- Don't be one of the leeches.
- Either stand out or kicked out.
下面是这个一百天计划里面的学习框架,我在这里放上来。
Day01~15 - Python语言基础
Day01 - 初识Python
Python简介 - Python的历史 / Python的优缺点 / Python的应用领域
搭建编程环境 - Windows环境 / Linux环境 / MacOS环境
从终端运行Python程序 - Hello, world / print函数 / 运行程序
使用IDLE - 交互式环境(REPL) / 编写多行代码 / 运行程序 / 退出IDLE
注释 - 注释的作用 / 单行注释 / 多行注释
Day02 - 语言元素
程序和进制 - 指令和程序 / 冯诺依曼机 / 二进制和十进制 / 八进制和十六进制
变量和类型 - 变量的命名 / 变量的使用 / input函数 / 检查变量类型 / 类型转换
数字和字符串 - 整数 / 浮点数 / 复数 / 字符串 / 字符串基本操作 / 字符编码
运算符 - 数学运算符 / 赋值运算符 / 比较运算符 / 逻辑运算符 / 身份运算符 / 运算符的优先级
应用案例 - 华氏温度转换成摄氏温度 / 输入圆的半径计算周长和面积 / 输入年份判断是否是闰年
Day03 - 分支结构
分支结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图
if语句 - 简单的if / if-else结构 / if-elif-else结构 / 嵌套的if
应用案例 - 用户身份验证 / 英制单位与公制单位互换 / 掷骰子决定做什么 / 百分制成绩转等级制 / 分段函数求值 / 输入三条边的长度如果能构成三角形就计算周长和面积
Day04 - 循环结构
循环结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图
while循环 - 基本结构 / break语句 / continue语句
for循环 - 基本结构 / range类型 / 循环中的分支结构 / 嵌套的循环 / 提前结束程序
应用案例 - 1~100求和 / 判断素数 / 猜数字游戏 / 打印九九表 / 打印三角形图案 / 猴子吃桃 / 百钱百鸡
Day05 - 构造程序逻辑
基础练习 - 水仙花数 / 完美数 / 五人分鱼 / Fibonacci数列 / 回文素数
综合练习 - Craps赌博游戏
Day06 - 函数和模块的使用
函数的作用 - 代码的坏味道 / 用函数封装功能模块
定义函数 - def语句 / 函数名 / 参数列表 / return语句 / 调用自定义函数
调用函数 - Python内置函数 / 导入模块和函数
函数的参数 - 默认参数 / 可变参数 / 关键字参数 / 命名关键字参数
函数的返回值 - 没有返回值 / 返回单个值 / 返回多个值
作用域问题 - 局部作用域 / 嵌套作用域 / 全局作用域 / 内置作用域 / 和作用域相关的关键字
用模块管理函数 - 模块的概念 / 用自定义模块管理函数 / 命名冲突的时候会怎样(同一个模块和不同的模块)
Day07 - 字符串和常用数据结构
字符串的使用 - 计算长度 / 下表运算 / 切片 / 常用方法
列表基本用法 - 定义列表 / 用下表访问元素 / 下标越界 / 添加元素 / 删除元素 / 修改元素 / 切片 / 循环遍历
列表常用操作 - 连接 / 复制(复制元素和复制数组) / 长度 / 排序 / 倒转 / 查找
生成列表 - 使用range创建数字列表 / 生成表达式 / 生成器
元组的使用 - 定义元组 / 使用元组中的值 / 修改元组变量 / 元组和列表转换
集合基本用法 - 集合和列表的区别 / 创建集合 / 添加元素 / 删除元素 / 清空
集合常用操作 - 交集 / 并集 / 差集 / 对称差 / 子集 / 超集
字典的基本用法 - 字典的特点 / 创建字典 / 添加元素 / 删除元素 / 取值 / 清空
字典常用操作 - keys()方法 / values()方法 / items()方法 / setdefault()方法
基础练习 - 跑马灯效果 / 列表找最大元素 / 统计考试成绩的平均分 / Fibonacci数列 / 杨辉三角
综合案例 - 双色球选号 / 井字棋
Day08 - 面向对象编程基础
类和对象 - 什么是类 / 什么是对象 / 面向对象其他相关概念
定义类 - 基本结构 / 属性和方法 / 构造器 / 析构器 / str方法
使用对象 - 创建对象 / 给对象发消息
面向对象的四大支柱 - 抽象 / 封装 / 继承 / 多态
基础练习 - 定义学生类 / 定义时钟类 / 定义图形类 / 定义汽车类
Day09 - 面向对象进阶
属性 - 类属性 / 实例属性 / 属性访问器 / 属性修改器 / 属性删除器 / 使用slots
类中的方法 - 实例方法 / 类方法 / 静态方法
运算符重载 - add / sub / or /getitem / setitem / len / repr / gt / lt / le / ge / eq / ne / contains
类(的对象)之间的关系 - 关联 / 继承 / 依赖
继承和多态 - 什么是继承 / 继承的语法 / 调用父类方法 / 方法重写 / 类型判定 / 多重继承 / 菱形继承(钻石继承)和C3算法
综合案例 - 工资结算系统 / 图书自动折扣系统 / 自定义分数类
Day10 - 图形用户界面和游戏开发
使用tkinter开发GUI
使用pygame三方库开发游戏应用
“大球吃小球”游戏
Day11 - 文件和异常
- 读文件 - 读取整个文件 / 逐行读取 / 文件路径
- 写文件 - 覆盖写入 / 追加写入 / 文本文件 / 二进制文件
- 异常处理 - 异常机制的重要性 / try-except代码块 / else代码块 / finally代码块 / 内置异常类型 / 异常栈 / raise语句
- 数据持久化 - CSV文件概述 / csv模块的应用 / JSON数据格式 / json模块的应用
Day12 - 字符串和正则表达式
- 字符串高级操作 - 转义字符 / 原始字符串 / 多行字符串 / in和 not in运算符 / is开头的方法 / join和split方法 / strip相关方法 / pyperclip模块 / 不变字符串和可变字符串 / StringIO的使用
- 正则表达式入门 - 正则表达式的作用 / 元字符 / 转义 / 量词 / 分组 / 零宽断言 /贪婪匹配与惰性匹配懒惰 / 使用re模块实现正则表达式操作(匹配、搜索、替换、捕获)
- 使用正则表达式 - re模块 / compile函数 / group和groups方法 / match方法 / search方法 / findall和finditer方法 / sub和subn方法 / split方法
- 应用案例 - 使用正则表达式验证输入的字符串
Day13 - 进程和线程
- 进程和线程的概念 - 什么是进程 / 什么是线程 / 多线程的应用场景
- 使用进程 - fork函数 / multiprocessing模块 / 进程池 / 进程间通信
- 使用线程 - thread模块 / threading模块 / Thread类 / Lock类 / Condition类 / 线程池
Day14 - 网络编程入门和网络应用开发
- 计算机网络基础 - 计算机网络发展史 / “TCP-IP”模型 / IP地址 / 端口 / 协议 / 其他相关概念
- 网络应用模式 - “客户端-服务器”模式 / “浏览器-服务器”模式
- 基于HTTP协议访问网络资源 - 网络API概述 / 访问URL / requests模块 / 解析JSON格式数据
- Python网络编程 - 套接字的概念 / socket模块 / socket函数 / 创建TCP服务器 / 创建TCP客户端 / 创建UDP服务器 / 创建UDP客户端 / SocketServer模块
- 电子邮件 - SMTP协议 / POP3协议 / IMAP协议 / smtplib模块 / poplib模块 / imaplib模块
- 短信服务 - 调用短信服务网关
Day15 - 图像和文档处理
- 用Pillow处理图片 - 图片读写 / 图片合成 / 几何变换 / 色彩转换 / 滤镜效果
- 读写Word文档 - 文本内容的处理 / 段落 / 页眉和页脚 / 样式的处理
- 读写Excel文件 - xlrd模块 / xlwt模块
- 生成PDF文件 - pypdf2模块 / reportlab模块
Day16~Day20 - Python语言进阶
- 常用数据结构
- 函数的高级用法 - “一等公民” / 高阶函数 / Lambda函数 / 作用域和闭包 / 装饰器
- 面向对象高级知识 - “三大支柱” / 类与类之间的关系 / 垃圾回收 / 魔术属性和方法 / 混入 / 元类 / 面向对象设计原则 / GoF设计模式
- 迭代器和生成器 - 相关魔术方法 / 创建生成器的两种方式 /
- 并发和异步编程 - 多线程 / 多进程 / 异步IO / async和await
Day21~30 - Web前端入门
- 用HTML标签承载页面内容
- 用CSS渲染页面
- 用JavaScript处理交互式行为
- jQuery入门和提高
- Vue.js入门
- Element的使用
- Bootstrap的使用
Day31~35 - 玩转Linux操作系统
- 操作系统发展史和Linux概述
- Linux基础命令
- Linux中的实用程序
- Linux的文件系统
- Vim编辑器的应用
- 环境变量和Shell编程
- 软件的安装和服务的配置
- 网络访问和管理
- 其他相关内容
Day36~40 - 数据库基础和进阶
- 关系型数据库MySQL
- 关系型数据库概述
- MySQL的安装和使用
- SQL的使用
- DDL - 数据定义语言 - create / drop / alter
- DML - 数据操作语言 - insert / delete / update / select
- DCL - 数据控制语言 - grant / revoke
- 相关知识
- 范式理论 - 设计二维表的指导思想
- 数据完整性
- 数据一致性
- 在Python中操作MySQL
- NoSQL入门
- NoSQL概述
- Redis概述
- Mongo概述
Day41~55 - 实战Django
Day41 - 快速上手
- Web应用工作原理和HTTP协议
- Django框架概述
- 5分钟快速上手
- 使用视图模板
Day42 - 深入模型
- 关系型数据库配置
- 管理后台的使用
- 使用ORM完成对模型的CRUD操作
- Django模型最佳实践
- 模型定义参考
Day43 - 静态资源和Ajax请求
Day44 - 表单的应用
- 表单和表单控件
- 跨站请求伪造和CSRF令牌
- Form和ModelForm
- 表单验证
Day45 - Cookie和Session
- 实现用户跟踪
- cookie和session的关系
- Django框架对session的支持
- 视图函数中的cookie读写操作
Day46 - 报表和日志
- 通过HttpResponse修改响应头
- 使用StreamingHttpResponse处理大文件
- 使用xlwt生成Excel报表
- 使用reportlab生成PDF报表
- 使用ECharts生成前端图表
- 配置日志和Django-Debug-Toolbar
Day47 - 中间件的应用
- 什么是中间件
- Django框架内置的中间件
- 自定义中间件及其应用场景
Day48 - 前后端分离开发入门
Day49 - RESTful架构和DRF入门Day50 - RESTful架构和DRF进阶Day51 - 使用缓存
- 网站优化第一定律
- 在Django项目中使用Redis提供缓存服务
- 在视图函数中读写缓存
- 使用装饰器实现页面缓存
- 为数据接口提供缓存服务
Day52 - 文件上传和富文本编辑
- 文件上传表单控件和图片文件预览
- 服务器端如何处理上传的文件
- 富文本编辑器概述
- wangEditor的使用
Day53 - 短信和邮件
- 常用短信网关平台介绍
- 使用螺丝帽发送短信
- Django框架对邮件服务的支持
Day54 - 异步任务和定时任务
- 网站优化第二定律
- 配置消息队列服务
- 在项目中使用celery实现任务异步化
- 在项目中使用celery实现定时任务
Day55 - 单元测试和项目上线
- Python中的单元测试
- Django框架对单元测试的支持
- 使用版本控制系统
- 配置和使用uWSGI
- 动静分离和Nginx配置
- 配置HTTPS
Day56~60 - 实战Flask
Day56 - Flask入门Day57 - 模板的使用Day58 - 表单的处理Day59 - 数据库操作Day60 - 项目实战
Day61~65 - 实战Tornado
Day61 - 预备知识
Day62 - Tornado入门
- Tornado概述
- 5分钟上手Tornado
- 路由解析
- 请求处理器
Day63 - 异步化
Day64 - WebSocket的应用
- WebSocket简介
- WebSocket服务器端编程
- WebSocket客户端编程
- 项目:Web聊天室
Day65 - 项目实战
- 前后端分离开发和接口文档的撰写
- 使用Vue.js实现前端渲染
- 使用ECharts实现报表功能
- 使用WebSocket实现推送服务
Day66~75 - 爬虫开发
Day66 - 网络爬虫和相关工具
- 网络爬虫的概念及其应用领域
- 网络爬虫的合法性探讨
- 开发网络爬虫的相关工具
- 一个爬虫程序的构成
Day67 - 数据采集和解析
- 数据采集的标准和三方库
- 页面解析的三种方式:正则表达式解析 / XPath解析 / CSS选择器解析
Day68 - 存储数据
Day69 - 并发下载
- 多线程和多进程
- 异步I/O和协程
- async和await关键字的使用
- 三方库aiohttp的应用
Day70 - 解析动态内容
- JavaScript逆向工程
- 使用Selenium获取动态内容
Day71 - 表单交互和验证码处理
Day72 - Scrapy入门
Day73 - Scrapy高级应用
- Spider的用法
- 中间件的应用:下载中间件 / 蜘蛛中间件
- Scrapy对接Selenium抓取动态内容
- Scrapy部署到Docker
Day74 - Scrapy分布式实现
- 分布式爬虫的原理
- Scrapy分布式实现
- 使用Scrapyd实现分布式部署
Day75 - 爬虫项目实战
- 爬取招聘网站数据
- 爬取房地产行业数据
- 爬取二手车交易平台数据
Day76~90 - 数据处理和机器学习
Day76 - 机器学习基础Day77 - Pandas的应用Day78 - NumPy和SciPy的应用Day79 - Matplotlib和数据可视化Day80 - k最近邻(KNN)分类Day81 - 决策树Day82 - 贝叶斯分类Day83 - 支持向量机(SVM)Day84 - K-均值聚类Day85 - 回归分析Day86 - 大数据分析入门Day87 - 大数据分析进阶Day88 - Tensorflow入门Day89 - Tensorflow实战Day90 - 推荐系统
Day91~100 - 团队项目开发
第91天:团队项目开发准备
- 软件过程模型
- 经典过程模型(瀑布模型)
- 可行性分析(研究做还是不做),输出《可行性分析报告》。
- 需求分析(研究做什么),输出《需求规格说明书》和产品界面原型图。
- 概要设计和详细设计,输出概念模型图、物理模型图、类图、时序图等。
- 编码 / 测试。
- 上线 / 维护。
- 敏捷开发(Scrum)- 产品所有者、Scrum Master、研发人员 - Sprint
- 产品的Backlog(用户故事、产品原型)。
- 计划会议(评估和预算)。
- 日常开发(站立会议、番茄工作法、结对编程、测试先行、代码重构……)。
- 修复bug(问题描述、重现步骤、测试人员、被指派人)。
- 评审会议(Showcase)。
- 回顾会议(当前周期做得好和不好的地方
有小伙伴私信我,要Python的学习资料,我连夜整理了一些有深度的Python教程和参考资料,从入门到高级的都有,文件已经打包好了,正在学习Python的同学可以免费下载学习,有兴趣的可以下载来看一下。资料是我辛苦整理的可不能轻易得到哟。点击我的头像,关注后私信回复“资料”即可下载。首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!重要的事说三遍,哈哈。“编程是门手艺活”。什么意思?得练啊。