Python开发者2017应该关注的7个类库
Django 依然是 Python 开发者值得信赖的库。然而,在 2016 年几个还不太知名的库引起了 Python 开发者的关注。在这篇博文中,我向大家揭示 7 个 Python 类库,其中不包括像 Django,Flask 等已广为熟知的库,这些类库在 2017 年可能值得 Python 开发者参考。
#1 Arrow
移动应用程序无处不在,而且全球人类都参与其中 – 无论是游戏,社交媒体,健康监控或其他。然而, Python 的标准数据/时间库的问题让它很难满足现代应用的需求,这些应用的目标受众生活在不同的地区和国家。Arrow 就是克服这个问题的类库之一。它拥有简化创建,格式化,操作和转换数据,以及时间和时间戳的功能。
该库解决了 Python 2 或 3 的支持 datetime 类型的需求。使用 Arrow,开发人员可以轻松地将一个时区转换为另一个时区。此外,Arrow 的日期,时间和日历模块打开了一站式服务的国际化应用程序的大门。
#2 TensorFlow
2015 年 11 月由 Google 推出的 TensorFlow 是一个用于数值计算的开源软件库。 自 TensorFlow 的推出才过去一年多的时间,但是这个库已经在 Python 开发人员中获得了相当大的人气。 事实上, TensorFlow 是最时髦 GitHub Python 资源库之一。
该库可以在桌面,服务器或移动设备中通过单个 API 使用运行在 GPU 和 CPUs 上的数据流图能力。 TensorFlow 最初由 Google 机器智能研究机构的研究人员和工程师开发,用于机器学习和深度神经网络研究。 虽然 TensorFlow 在机器学习社区中掀起了一些小的波澜,但它已经被证明非常适合生产应用程序。
#3 Zappa
最开始的时候是由 AWS Lambda 带来了无服务架构。而 Zappa 则被认为是改进了的 Python web 应用部署的程序。 Rich Jones 是 Zappa 的主要作者,并且是 Gun.io 的 CTO,他在一次采访中说道:“我相信无服务架构(这意味着,系统没有任何永久基础设施)是网络应用的未来”。
至于 Zappa,它让所有 Python WSGI 的应用在 AWS Lambda + API 网关上的部署变得轻而易举。在 VPS 服务(类似 Linode,PaaS服务的 Heroku )上摆脱依赖库需要花费成百上千的美元。简单来说,我们可以说 Zaapa 允许在云上以微服务部署,不会有任何与服务器管理相关的麻烦事。Zappa 同样也是很快的,可扩展的。
#4 Peewee
Peewee 是 Python 生态中简单的,富有表现力的 ORM ,它支持 SQLite,MySQL 和 PostgreSQL。数据库经常需要为应用去使用扩展的数据。不过,通过 ad hoc 连接串去 get 和 set 数据库中的数据是一项非常有挑战的任务。这种情况下,Peewee 就可以帮很大的忙了。这个库对于开发者和数据库工程师都是安全的,使用它可以以程序化的 Python 类来直观地使用数据库资源。
开发者们以前用 SQLAlchemy 已经创建了一个数据库,应该会觉得使用 Peewee 创建数据库是更容易的。另外,Peewee 一直以来都适用于 Flask web 框架。
点击这里学习如何在 Peewee 中创建一个数据库
#5 Sanic + uvloop
Sanic 是一个与 Flask 类似,基于 uvloop 的 web 框架,它能让 Python 更快速。Sanik,是基于 Python 3.5 设计的,它允许开发者在 async/await 语法上建立定义异步函数。在 Sanic 之前,Python 没有办法做到如此之快。uvloop 服务作为一个极其快速的库,顺其自然地替代了异步默认事件的循环。
Sanik 使得开发者能够在 Python 中编写异步应用,在这种方式下非常类似于 Node.js。但是通过 Sanic 作者的基准测试,uvloop 在处理超过每秒33k次请求时,依然表现良好,这超过了 Node.js 的性能。由于 Sanic 还很新,因此在不久的将来会有更多的改进和变更。你也可以到它的 开源库中 做出贡献。
# 6 Bokeh
你可能知道 Python 在数据可视化方面的一些类库,比如 matplotlib 和 seaborn。然而,Bokeh 是一个专门设计可视化交互并用于现代的 Web 浏览器的展示。开发者可以利用 Bokeh 以类似于 D3.js 的方式创建一流的可视媒体。除此之外,你可以利用非常大的或者流式的数据集来扩展更强的表现交互的能力。
你可以通过 Bokeh 创建可视化端点,仪表盘和数据应用。开发者也可以利用 Bokeh 处理通过其他类库,比如 Matplotlib, Seaborn 和 ggplot 创建的可视化图形。Bokeh 也可以和 Jupyter Notebooks 很好的结合来用于研究领域。
#7 Blaze
Blaze 用于处理数据库和分析查询的阵列技术。当对一个大到我们的电脑内存不能存储的数据集进行分析时,NumPy 和 Pandas 往往不能派上用场。这时开发者经常求助于 PostgreSQL,MongoDB,Hadoop,Spark 和磁盘外存储系统(PyTables and BColz)等等。