Python 模块收集

转自:http://kuanghy.github.io/2017/04/04/python-modules

Python | Apr 4, 2017 | python

工具

  • attrs Attributes Without Boilerplate
  • assertpy assert 语句的替代品
  • affirm 用于更好的替换 assert 语句
  • decorator 简化 decorator 的使用难度而开发的模块
  • isort 可自动对 Python 的 import 语句进行排序和分段。可将大量的 import 结构转成非常适合阅读的排版

日志处理

  • logging 标准库日志系统
  • logbook 一个功能完备强大的日志库
  • Structlog 是一个先进的日志处理器。他可以和任何现存的日志记录工具相集成,并包装了 Python 标准库。你可以构建定制的记录工具,根据你的需要增加上下文,保证你的日志一致、可读

系统工具

  • keyring
  • sh 是一个成熟的Python子进程接口,允许你像调用函数一样调用任何程序。超级好用。
  • Watchdog 是一个跨平台的Python库和shell工具,可以监视文件系统事件。超级好用,容易上手。
  • PyFilesystem 文件系统的抽象层

邮件

数据库

  • MySQL-Python 对 MySQL C 驱动的封装,仅支持 Python2,该项目名称为MySQLdb1
  • mysqlclient 基于 MySQLdb1 项目,并添加对 Python3 的支持
  • mysql-connector-python MySQL 官方支持的纯 Python 驱动
  • PyMySQL MySQL 的一个纯 Python 接口
  • Tornado-MySQL 基于 PyMySQL 并添加对 Tornado 的支持
  • adb 异步 mysql 库
  • SQLAlchemy 提供了 SQL 工具包及对象关系映射(ORM)工具
  • Peewee 超级轻量的一个 ORM 框架
  • pymongo MongoDB 官方支持的驱动程序
  • motor 为 Tornado 提供了一个基于回调和 Future 机制的非堵塞的 MongoDB 驱动程序
  • redis-py Redis 的 Python 接口程序

打印输出

  • prettytable 表格形式输出数据
  • tabulate 可以仅调用一个函数就能够输出小的、好看的表格
  • humanize 将数值、日期等转化为更易读的形式
  • colorama 输出着色,跨平台
  • termcolor 输出着色
  • blessings 输出着色
  • hues 输出着色,同时可以用来代替日志模块

并行计算、分布式、任务调度

  • Celery 一个非常成熟的Python分布式框架,可以在分布式的系统中,异步的执行任务,并提供有效的管理和调度功能。
  • SCOOP 提供简单易用的分布式调用接口,使用Future接口来进行并发。
  • Dispy 相比起 Celery 和 SCOOP,Dispy 提供更为轻量级的分布式并行服务
  • PP (Parallel Python)是另外一个轻量级的 Python 并行服务
  • Asyncoro 一个利用 Generator 实现分布式并发的 Python 框架
  • APScheduler 任务调度模块,一个 Python 定时任务框架
  • mpi4py 一个构建在MPI之上的Python库,主要使用Cython编写
  • pyee 一个 node.js’s EventEmitter 的 Python 粗略实现
  • threadpool 一个比较老的线程池库,不太建议使用

命令行参数解析

  • Docopt 忘了 optparse 和 argparse 吧,使用 docstring 来构建优雅的、高可读性、复杂(如果你有这个需要)的命令行界面。在我看来这是2013年诞生的最好的库
  • Click 用于快速创建命令行工具
  • clize 利用装饰器将函数转换成命令行解析器
  • python-fire Google 开源的一个可从任何 Python 代码自动生成命令行接口(CLI)的库,是开发和调试非常有用的工具,只需将想要在命令行显示的功能写为函数/模块/类,就可以在命令行模式下调用

HTTP

  • Requests 为人类准备的 HTTP,以更 pythonic 的方式处理 HTTP 请求,比 urllib2 好用得多
  • builtwith 识别网站所使用技术
  • whois 域名公共查询工具:Whois
  • robotparser 标准库,解析 robots.txt 文件

HTML/XML

  • lxml 联合了 libxml2 和 libxslt。如果你要处理 XML 或 HTML,lxml 是最好的选择,真的
  • PyQuery 像 JQuery 一样使用
  • html5lib
  • BeautifulSoup 一个可以从 HTML 或 XML 文件中提取数据的 Python 库

Web 框架

  • Bottle 是一个快速、简单、轻量的WSGI微型web框架。利用Bottle构建小型站点和API的时间以秒计算。这个框架只有一个py文件,你可以把它放进任何目录
  • Django 以快速开发和结构整洁著称的高层框架。这个开源免费的框架完全由 Python 编写并且遵循 MVC 的模型
  • CherryPy 是HTTP协议的一个封装,这样其他软件可以使用它来处理HTTP协议的细节。它是一个低层的框架,它只提供 RFC 2616 定义的功能。接口非常 Pythonic,让 Python 开发者不会感到突兀
  • Flask 基于 WerkzeugWSGI 工具箱和 jinja 模板,适合开发轻量级的 Web 应用,有很多第三方扩展
  • Pyramid 包含了一些 Python/Perl/Ruby 独有的特性,拥有不依赖平台的 MVC 架构,和最快的启动开发的能力。以执行效率和快速开发的能力著称
  • TurboGear 建立在其他框架基础上的框架,把其他框架优秀的部分集成到一起。由于每个框架都有一些部分做得不好,TurboGear试图解决这个问题.它允许你从一个单文件服务开始,逐步扩展为一个全栈服务
  • tornado一个强大的、可扩展的异步非阻塞 Web 服务器,同时也是一个轻量级 Web 框架
  • web.py 一款轻量级的 Python web 开发框架,简单、高效
  • web2py 一种免费的、开源的 web 开发框架,用于敏捷地开发安全的、数据库驱动的 web 应用
  • Sanic 一个与 Flask 类似,基于 uvloop 的 web 框架,它能让 Python 更快速
  • hug 旨在简化 Python RESET APIs 的开发,其本身并非一个网络框架,构建在 Falcon 的高性能 HTTP 库之上,意味着可以使用任何 wsgi 兼容的服务器(例如 gunicorn)将其部署到生产环境中

Web Server

  • Gunicorn Green Unicorn,是一个 WSGI 服务器,用来支持 Python 应用,被设计成运行于Nginx之后,轻量级、易于使用、并使用许多UNIX特性
  • uWSGI 用来构建全栈式的主机服务,既能当作独立的 web 路由器来运行,也能运行在一个完整 web 服务器(比如Nginx或Apache)之后
  • Meinheld 一个高性能的异步 WSGI Web 服务, 利用 greenlet 和 Picoev 实现异步 I/O

网络爬虫

消息队列

  • pika RabbitMQ 的 Python 库
  • zmq ZeroMQ 的 Python 库
  • kafka-python Apache Kafka 的 Python 库
  • boto 亚马逊消息列队服务 Python SDK

远程对象支持

日期和时间处理

  • Delorean 用它处理日期和时间非常方便。设置时区,截取到秒、分、小时,甚至使用特定步骤从一个日期进到另一个日期
  • Arrow 提供了合理的、友好的方式来创建、控制、格式化、转换 Python 的日期、时间和时间戳

Excel

SSH

科学计算与数据处理

  • numpy
  • pandas
  • PyTables 提供了一些用于结构化数组的高级查询功能,而且还能添加列索引以提升查询速度,这跟关系型数据库所提供的表索引功能非常类似。
  • h5py 将数据存储为高效且可压缩的HDF5格式
  • fastcache 用 C 实现的,更快的,兼容 Python2 和 Python3 的缓存模块
  • PrettyPandas 用 pandas Style API 来将DataFrames转换成适合展示的表格
  • bcolz 列式存储的数据持久化方案,压缩率高而且查询速度快
  • odo 在各种数据格式之间高效的迁移数据。这里的数据格式既包括内存中的数据结构,比如:列表、集合、元组、迭代器、numpy中的ndarray、pandas中的DataFrame、dynd中的array,以及上述各类的流式序列。也包括存在于Python程序之外的持久化数据,比如:CSV、JSON、行定界的JSON,以及以上各类的远程版本,HDF5 (标准格式与Pandas格式皆可)、 BColz、 SAS、 SQL 数据库 ( SQLAlchemy支持的皆可)、 Mongo 等
  • Blaze 用于处理数据库和分析查询的阵列技术。是下一代的 NumPy。用于处理分布式的各种不同数据源的计算
  • joblib 为Python函数提供轻量级管道任务(pipeline job)服务的一系列工具,包括透明磁盘IO缓冲、快速序列化、简单并行化运行、日志服务等,为大数据集的快速可靠处理进行了优化,特别针对numpy数组的处理进行了优化

自然语言处理

  • python-pinyin 将汉字转为拼音。可以用于汉字注音、排序、检索
  • Pinyin2Hanzi 拼音转汉字,可以作为拼音输入法的转换引擎
  • jieba 中文分词组件
  • thulac 一个高效的中文词法分析工具包

性能优化

  • numba 使用 Just-in-Time(JIT) 即时编译器的方式加速代码,其 Python 源码通过 LLVMPy 生成 JIT 后的 so文件来加速
  • cython 是 Python 的 C 语言扩展。准确说 Cython 是单独的一门语言,专门用来写在 Python 里面 import 用的扩展库。实际上 Cython 的语法基本上跟 Python 一致,而 Cython 有专门的编译器:先将 Cython 代码转变成 C(自动加入了一大堆的 C-Python API),然后使用 C 编译器编译出最终的 Python 可调用的模块。不过 Cython 的缺点是,你并不能真正编写 Python 代码
  • pypy 使用 Python 实现的解释器,它使用了 Just-in-Time(JIT) 即时编译器,即动态编译器,与静态编译器(如gcc,java等)不同,它是利用程序运行的过程的数据进行优化
  • Pyston 是一款 Dropbox 推出的新的基于 JIT 的 Python 实现,使用 LLVM 编译器实现代码解析与转换

[转]Python 模块收集的更多相关文章

  1. python模块介绍- binascii 二进制和ASCII转换

    python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...

  2. python模块部分----模块、包、常用模块

    0.来源:https://www.cnblogs.com/jin-xin/articles/9987155.html 1.导入模块 1.1模块就是一个python文件,模块名是文件名 1.2导入模块的 ...

  3. python模块导入细节

    python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: ...

  4. 【转】python模块导入细节

    [转]python模块导入细节 python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码 ...

  5. python 模块和包

    一,模块 1,什么是模块? 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py 的后缀. 但其实 import 加载的模块分为四个通用类别: 1,使用pyt ...

  6. python模块大全

    python模块大全2018年01月25日 13:38:55 mcj1314bb 阅读数:3049 pymatgen multidict yarl regex gvar tifffile jupyte ...

  7. 一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块

    简介 一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块. 举个例子: ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘 ...

  8. python开发_常用的python模块及安装方法

    adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctype ...

  9. 常用的python模块及安装方法

    adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctyp ...

随机推荐

  1. mysql主从复制-读写分离

    mysql主从复制+读写分离 环境:mysql主:193.168.1.1mysql从:193.168.1.2amoeba代理:193.168.1.3########################## ...

  2. django面试二

    33. django的缓存能使用redis吗?如果可以的话,如何配置? #1.安装 pip install django-redis#2.在stting中配置CACHES,可以设置多个缓存,根据名字使 ...

  3. python点滴:判断字符串是否为合法json格式

    在一些情况下,我们需要判断字符串是否为合法json格式. 思路很简单:尝试对字符串使用json.loads(),如果不是合法json格式,则会抛出ValueError异常. 示例如下: import ...

  4. SpringBoot2静态资料访问

    在SpringBoot2内要继承WebMvcConfigurationSupport并重写addResourceHandlers方法才能访问到静态资料. @Configuration public c ...

  5. CentOS7+Nginx配置Tomcat负载均衡环境

    1.准备两个Tomcat 配置两个Tomcat一个端口是8080另外一个端口是8081,分别在webapps下面添加一个测试用的web项目,修改index.jsp文件,8080端口的index.jsp ...

  6. Jsoup的学习

    一 . 什么是jsoup jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来 ...

  7. DocumentFragment --更快捷操作DOM的途径

    使用DocumentFragment将一批子元素添加到任何类似node的父节点上,对这批子元素的操作不需要一个真正的根节点.可以不依赖可见的DOM来构造一个DOM结构,而效率高是它真正的优势,试验表明 ...

  8. Map集合与转化

    |--Hashtable:底层是哈希表数据结构,是线程同步的.不可以存储null键,null值. |--HashMap:底层是哈希表数据结构,是线程不同步的.可以存储null键,null值.替代了Ha ...

  9. Light OJ 1199:Partitioning Game(SG函数模板)

    Alice and Bob are playing a strange game. The rules of the game are: 1.      Initially there are n p ...

  10. 51Nod 1070:Bash游戏 V4(斐波那契博弈)

    1070 Bash游戏 V4  基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次拿的数量最少1个 ...