请您先登录,才能继续操作

阅读更多

1顶
0踩

编程语言
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)等等。

然而,理解每一个系统如何工作以及如何将数据整理成合适的形式是一个非常有挑战性的工作。由于缺乏对于如何在新技术之间混合和迁移数据的认识,从数据分析中攫取有效的结论将是非常困难的。Blaze 通过提供一个对不同种类数据库技术统一的接口以及迁移数据抽象化处理来解决这个难题。Blaze 对于表达计算是一个好的选择。

尽管存在一些其他的不太知名但是有效的 Python 类库,如 Gym + UniverseBoto3HugScrapyBeautiful Soup 等等。我只能选择这几个以便这篇博客有一个结尾。Python 开发者可以研究这些类库看看是否符合他们的需要,再合理的选择合适的类库。

英文原文:Python Development: 7 Libraries to Look For in 2017
来自: oschina
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Java_Certificado:数字证书管理Java项目

    Java_证书 数字证书管理Java项目 疑问,建议或咨询 输入项目不一致: : 你喜欢这个项目吗? 通过Pix进行协作:01713390108 开始 : 如果您使用Libs,请下载java-certificate-2.5.jar( )并将其添加到您的项目库中。 如果您使用Maven: <dependency> <groupId>br.com.swconsultoria</groupId> <artifactId>java_certificado</artifactId> <version>2.5</version> </dependency> 有关完整的教程,请参见Wiki 。 版本记录 v2.5-4/4/2021 生成新的Cacert 在存储库方法中重构(Windows / Mac) v2.4-4/1/2021 向该项目添加了Cacert

  • Java安全通信、数字证书及应用实践(转)

     摘要:   在本文中,我用详细的语言和大量的图片及完整的程序源码向你展示了在 JAVA中如何实现通过消息摘要、消息验证码达到安全通信、以及用Java的工具生成数字证书,和用程序给数字证书签名、以及用签名后的数学证书签名applet突破applet的访问权限的过程,给出了全部例子的详细代码。  通过本文中你可以学到以下知识:    ● 程序间如何安全通信    ● 什么是 及 如何生成消息摘要  

  • java编程方式用CA给证书进行签名/签发证书

    这些代码首先加载CA证书,然后分别用CA给Alice和Bob签发一个证书并保存到resource/目录下面,用jks格式存储。 CA证书也是用java编程方式制作的,制作过程请看我的上一篇博客。 public static void main(String[] args) throws KeyStoreException, NoSuchAlgorithmException, C...

  • 数字证书如何写入到ukey_ukey身份认证步骤

    使用uKey进行身份认证与安全登录主要包括以下步骤:1)初始化uKey 当新用户提出登录申请时,管理员根据用户需求生成数字证书,同时将数字证书和对应的密钥对写入一个全新的uKey中,然后将此uKey发放给用户。密钥存储在uKey中特殊的文件分区里,不能向外读出,以保证其私密性,但可以使用该私钥进行加密或签名。用户获得自己的uKey后就可以登录指定的机器。2)用户注册 当客户端第...

  • JAVA中数字证书的维护及生成方法

    <br /> Java中的数字证书的生成及维护方法<br />Java中的keytool.exe可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。 <br /><br />  每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。 <br /><br />  在创建证书的的时候,

  • java怎么默认下载工具_使浏览器能自动下载JVM的方法

    classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"codebase = "http://java.sun.com/products/plugin/1.4/jinstall-1_4-windows-i586.cab#Version=1,4,1,0"WIDTH = "100%" HEIGHT = "500" &gt;type="applicat...

  • 当客户端浏览器不支持相应版本的apple时自动下载运行环境JVM的解决办法!

    classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"codebase = "http://java.sun.com/products/plugin/1.4/jinstall-1_4-windows-i586.cab#Version=1,4,1,0"WIDTH = "100%" HEIGHT = "500" >" >" >type="appli

  • Java的安全学习(包括加密,数字签名,证书和认证)

    (1)消息摘要:   消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。       消息摘要采用单向Hash 函数将需加密的明文"

  • Java加密技术(十一)——双向认证

    对于双向认证,做一个简单的描述。  服务器端下发证书,客户端接受证书。证书带有公钥信息,用于验证服务器端、对数据加密/解密,起到OSI五类服务的认证(鉴别)服务和保密性服务。  这只是单向认证,为什么?因为客户端可以验证服务器端,但服务器端不能验证客户端!  如果客户端也有这样一个证书,服务器端也就能够验证客户端,这就是双向认证了!  换言之,当你用银行的“U盾”之类的U盘

  • Java安全通信概述

    1.安全通信介绍     计算机安全通信过程中,常使用消息摘要和消息验证码来保证传输的数据未曾被第三方修改。    消息摘要是对原始数据按照一定算法进行计算得到的结果,它主要检测原始数据是否被修改过。消息摘要与加密不同,加密是对原始数据进行变换,可以从变换后的数据中获得原始数据,而消息摘要是从原始数据中获得一部分信息,它比原始数据少得多,因此消息摘要可以看作是原始数据的指纹。    例:

  • 如何用JAVA代码签发数字证书

    2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

  • 数字证书及其简单数字签名的实现

    &amp;lt;!--[if !supportLists]--&amp;gt;1、&amp;lt;!--[endif]--&amp;gt;引导语/数字证书的应用 提到数字证书,大家首先可能想到这些。 然而其实这些也是数字证书运用很广泛的地方,可以说,数字证书是整个信息时代网络安全及其有力的一种保障。  我们可以简单的用一种很直接的方法查看我们的证书,比如右击一个exe类型的文件,打开文件的属性,然后你可以很清楚的看到数字...

  • java 数字证书验签_Java使用数字证书加密通信(加解密/加签验签)

    本文中使用的Base64Utils.java可参考:http://www.cnblogs.com/shindo/p/6346618.html证书制作方法可参考:http://www.cnblogs.com/shindo/p/6346971.html===========================工具类如下:CertificateUtils.javapackage com.mes.util;i...

  • Java 生成数字证书系列(一)了解数字证书

    序 最近的工作一直围绕着数字证书,对于 CA 证书的了解还是多少有一点的,只不过没有那么深入,现在要用到这方面的东西,显然还是有点欠缺,那么从这篇开始,我就将我自己的学习、工作历程跟大家一同分享,希望对想了解 CA 证书的童鞋有所帮助吧。 很显然,这篇文章大部分都是理论介绍,后续会有相关的一些实例。不喜欢看理论的童鞋,可以直接略过此章,直接看后续的文章。 概要

  • Java安全通信、数字证书及数字证书应用实践

     Abnerchai(柴政) 2004年6月摘要:在本文中,我用详细的语言和大量 的图片及完整的程序源码向你展示了在 JAVA中如何实现通过消息摘要、消息验证码达到安全通信、以及用Java的工具生成数字证书,和用程序给数字证书签名、以及用签名后的数学证书签名applet突破applet的访问权限的过程,给出了全部例子的详细代码。 通过本文中你可以学到以下知识: •  程

  • LDAP 中 CN, OU, DC 的含义

    1、 LDAP的存储规则 区分名(DN,Distinguished Name) 和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶。 在文件系统中, 这些独一无二的属性就是带有完整路径的文件名。比如/etc/passwd,该文件名在该路径下是独一无二的。当然我们可以有/usr/passwd, /o

  • Applet数字签名,授予访问本地资源 .

          【摘 要】如果你要考虑在Internet上实现这个Applet,那么你也不需要在所有的客户端均做上面的步骤,你只需要在你的服务器上创建一个目录。   本文章介绍Applet数字签名,授予访问本地资源的方法。步骤一:将Applet Class打成Jar包  如:在命令行中执行以下的语句:  jar -cvf ReadUrl.jar *.class步骤二:(在网页中嵌入Appl

  • JNLP说明(good)

    转自(http://blog.csdn.net/llythh/archive/2009/06/26/4299490.aspx)Java Web Start 是一个helper应用程序,它和WEB浏览器关联在一起。当用户点击指向一个特定的launch文件(JNLP文件)时,会促使浏览器装载Java Web Start, JA

Global site tag (gtag.js) - Google Analytics