python常用框架和库,建议收藏!

python常用框架和库,建议收藏!

随着人工智能时代的到来,python变得更加流行、受欢迎,功能强大、简单易学、容易入门、应用广泛等,掀起了学习热潮,现在越来越多人转行都会学习python语言。

现在的python成为了炙手可热的一门语言,在如何快速入门python的同时,如何利用python更高效的开发也是程序员成长的优势。

目前,Python已经拥有数不清的第三方工具包。不仅有那种大杀器似的框架、库及应用,更多的常应用的框架、库及应用。往往大家在编程中接触的更多是常应有的一些框架、库及应用。接下来,就为大家列举一下常用的框架、库及软件包。上干货:

Ø 框架

1. Django

谈到Python框架,第一个想到的应该就是Django。Django作为一个Python Web应用开发框架,可以说是一个被广泛使用的全能型框架。Django的目的是为了让开发者能够快速地开发一个网站,因此它提供了很多模块。它与其他框架最大的区别就是,鲜明独特的特性,支持orm,将数据库的操作封装成为Python,对于需要适用多种数据库的应用来说是个比较好的特性。

2. Flask

相信大家都知道Flask是一个用Python编写的轻量级Web应用框架。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask框架非常适合初学者学习。Flask框架学会以后,我们还可以考虑学习插件的使用。

3. Scrapy:Python的爬虫框架

现在Python爬虫技术被看作是职场人的加分技能,因此掌握Scrapy还是十分有必要的。Scrapy是一个轻量级的使用Python编写的网络爬虫框架,这也是它与其他Python框架最大的区别。因为专门用于爬取网站和获取结构数据且使用起来非常的方便,Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试等等。

4. Diesel

Diesel是基于Greenlet的事件I/O框架,它提供一个整洁的API来编写网络客户端和服务器。它与其他Python框架最大的区别是支持TCP和UDP。

5. Cubes

Cubes作为一个轻量级Python OLAP框架,包含了OLAP、多维数据分析和浏览聚合数据(aggregated data)等工具。

6. Pulsar

Pulsar是Python的事件驱动并发框架。有了pulsar,你可以写出在不同进程或线程中运行一个或多个活动的异步服务器。

7. Tornado

Tornado全称是Torado Web Server,仅仅从它的名字上我们就可以知道它可以用作Web服务器,但同时它也是一个Python Web的开发框架。Tornado和现在的主流 Web 服务器框架和大多数Python框架有着明显的区别,它是非阻塞式服务器,而且速度相当快。它也是比较常被使用的Python开源框架之一。当框架能够提供的功能占比越来越小,需要实现更多的内容的时候,Tornado就是比较好的选择了。

8. Requests.

Kenneth Reitz写的最富盛名的http库,每个Python程序员都应该有它。

9. Pillow

它是PIL(Python图形库)的一个友好分支。对于用户比PIL更加友好,对于任何在图形领域工作的人是必备的库。

10. SQLAlchemy

一个数据库的库。对它的评价褒贬参半。是否使用的决定权在你手里。

11. BeautifulSoup

虽然它很慢,但这个xml和html的解析库对于新手非常有用。

12. Twisted

对于网络应用开发者最重要的工具。它有非常优美的api,被很多Python开发大牛使用。

13. NumPy

它为Python提供了很多高级的数学方法。

14. SciPy

既然我们提了NumPy,那就不得不提一下SciPy。这是一个Python的算法和数学工具库,它的功能把很多科学家从Ruby吸引到了Python。

15. Matplotlib

一个绘制数据图的库。对于数据科学家或分析师非常有用。

16. Pygame

哪个程序员不喜欢玩游戏和写游戏?这个库会在开发2D游戏的时候如虎添翼。

17. Pyglet

3D动画和游戏开发引擎。非常有名的Python版本Minecraft就是用这个引擎做的。

18. pyQT

Python的GUI工具。这是在给Python脚本开发用户界面时次于wxPython的选择。

19. pyGtk

也是Python GUI库。很有名的Bittorrent客户端就是用它做的。

20. Scapy

用Python写的数据包探测和分析库。

21. pywin32

一个提供和windows交互的方法和类的Python库。

22. nltk

自然语言工具包。估计大多数人不会用它,但它通用性非常高。如果你需要处理字符串的话,它是非常好的库。但它的功能远远不止如此,自己摸索一下吧。

23. nose

Python的测试框架。被成千上万的Python程序员使用。如果你做测试导向的开发,那么它是必不可少的。

24. SymPy

SymPy可以做代数评测、差异化、扩展、复数等等。它封装在一个纯Python发行版本里。

25. IPython

怎么称赞这个工具的功能都不为过。它把Python的提示信息做到了极致。包括完成信息、历史信息、shell功能,以及其他很多很多方面。一定要研究一下它。

python框架之间的区别还是很大的,如果是入门建议选择Flask,而重量级框架首选Django。至于其他的框架都很好用,主要看大家的应用场景对Python框架有哪些具体的要求。

Ø

1、 Matplotlib

用于创建二维图和图形的底层库,有了它的帮助,你可以构建各种不同的图标,从直方图到散点图再到费笛卡尔坐标图,它都可以与很多流行的绘图库结合使用。

2、 Seaborn

包含更适合处理图标的默认设置,此外还有丰富的可视化库,包含一些复杂类型,比如说时间序列、联合分布图等。

3、 Plotly

一个很流行的库,可以让你轻松构建复杂的图形,该软件包含用于交互式web应用程,可实现轮廓图、三元图以及三维图等效果。

4、 Pydot

纯Python编写的Graphviz接口,经常用于生产复杂的定向图和无向图,能够显示图形的结构,构建神经网络和基于决策树的算法时非常有效。

5、 pyecharts

功能非常强大,支持多达400+地图,支持JupyterNotebook、JupyterLab,可以集成Flask,Sanic,Django等主流Web框架。

6、 cufflinks

结合了plotly的强大功能和panda的灵活性,可以方便地进行绘图,避免了数据可视化过程中,对数据存储结构和数据类型进行复杂的麻烦。

Ø 软件包

在这里列出过去一年在 PyPI 上下载次数最多的 Python 软件包。

1 Urllib3

Urllib3是一个 Python 的 HTTP 客户端,它拥有 Python 标准库中缺少的许多功能:线程安全;连接池;客户端 SSL/TLS 验证;使用分段编码上传文件;用来重试请求和处理 HTTP 重定向的助手;支持 gzip 和 deflate 编码;HTTP 和 SOCKS 的代理支持

2 Six

six 是一个是 Python 2 和 3 的兼容性库。这个项目旨在支持可同时运行在 Python 2 和 3 上的代码库。

它提供了许多可简化 Python 2 和 3 之间语法差异的函数。一个容易理解的例子是six.print_()。在 Python 3 中,打印是通过print()函数完成的,而在 Python 2 中,print后面没有括号。因此,有了six.print_()后,你就可以使用一个语句来同时支持两种语言。

3 Pip

大多数人都知道并且很喜欢 pip,它是 Python 的包安装器。你可以用 pip 轻松地从 Python 包索引和其他索引(例如本地镜像或带有私有软件的自定义索引)来安装软件包。

4 Python-dateutil

python-dateutil模块提供了对标准datetime模块的强大扩展。我的经验是,常规的Python datetime缺少哪些功能,python-dateutil就能补足那一块。

你可以用这个库做很多很棒的事情。其中,我发现的一个特别有用的功能就是:模糊解析日志文件中的日期。

5 Requests

Requests建立在我们的 #1 库——urllib3基础上。它让 Web 请求变得非常简单。相比urllib3来说,很多人更喜欢这个包。而且使用它的最终用户可能也比urllib3更多。后者更偏底层,并且考虑到它对内部的控制级别,它一般是作为其他项目的依赖项。

6 Certifi

近年来,几乎所有网站都转向 SSL,你可以通过地址栏中的小锁符号来识别它。加了小锁意味着与该站点的通信是安全和加密的,能防止窃听行为。Certifi是根证书的一个精选集合,有了它,你的 Python 代码就能验证 SSL 证书的可信度。

7 Idna

根据其 PyPI 页面,idna提供了“对 RFC5891 中指定的应用程序中国际化域名(IDNA)协议的支持。”

据悉,应用程序中的国际化域名(IDNA)是一种用来处理包含非 ASCII 字符的域名机制。但是,原始域名系统已经提供对基于非 ASCII 字符的域名支持。IDNA的核心是两个函数:ToASCII和ToUnicode。ToASCII会将国际 Unicode 域转换为 ASCII 字符串。ToUnicode则逆转该过程。

8 PyYAML

YAML是一种数据序列化格式。它的设计宗旨是让人类和计算机都能很容易地阅读代码——人类很容易读写它的内容,计算机也可以解析它。

9 Pyasn1

一个建议,除非你真的需要,否则还是敬而远之吧。但由于它用在很多地方,因此许多包都依赖这个包。

10 Docutils

Docutils是一个模块化系统,用来将纯文本文档处理为很多有用的格式,例如 HTML、XML 和 LaTeX 等。Docutils能读取reStructuredText格式的纯文本文档,这种格式是类似于 MarkDown 的易读标记语法。

11 Chardet

你可以用chardet模块来检测文件或数据流的字符集。比如说,需要分析大量随机文本时,这会很有用。但你也可以在处理远程下载的数据,但不知道用的是什么字符集时使用它。

12 RSA

rsa包是一个纯 Python 的 RSA 实现。它支持:加密和解密;签名和验证签名;根据 PKCS#1 1.5 版生成密钥。它既可以用作 Python 库,也能在命令行中使用。

13 Jmespath

在 Python 中用 JSON 非常容易,因为它在 Python 字典上的映射非常好,这是它最好的特性之一。JMESPath,发音为“James path”,使 Python 中的 JSON 更容易使用。它允许你声明性地指定如何从 JSON 文档中提取元素。

14 Setuptools

它是用于创建 Python 包的工具。不过,其文档很糟糕。它没有清晰描述它的用途,并且文档中包含无效链接。最好的信息源是这个站点,特别是这个创建 Python 包的指南。

15 Awscli

这里把 #3、#7、#17 和 #22 放在一起介绍,因为它们的关系非常密切。

16 Pytz

像dateutils(#5)一样,这个库可帮助你处理日期和时间。有时候,时区处理起来可能很麻烦。幸好有这样的包,可以让事情变得简单些。

17 Futures

从 Python 3.2 开始,python 提供current.futures模块,可帮助你实现异步执行。futures 包是该库适用于 Python 2 的 backport。它不适用于 Python3 用户,因为 Python 3 原生提供了该模块。

18 Colorama

使用 Colorama,你可以为终端添加一些颜色:

19 Simplejson

原生的json模块有什么问题,才需要这种高级替代方案呢?并没有!实际上,Python 的json就是simplejson。但是simplejson也有一些优点:它适用于更多的 Python 版本;它比 Python 更新的频率更频繁;它有用 C 编写的(可选)部分,因此速度非常快。

原创文章,作者:小新,如若转载,请注明出处:https://www.news36524.com/archives/193

发表评论

登录后才能评论