Python学习 Python,这 22 个包怎能不掌握?( 二 )


  • Pip 非常容易使用 。 安装一个软件包只需要执行 pip install。 删除只需要执行 pip uninstall。
  • Pip 最大的好处就是它可以安装一系列包 , 通常会放在 requirements.txt 文件中 。 该文件还可以指定每个包的详细版本号 。 绝大多数 Python 项目都会包含这个文件 。
  • 与 virtualenv(第57名)结合使用 pip , 可以创建可预测的、独立的环境 , 而不会与系统本身的环境互相影响 。
  • 5. python-dateutil
    6.17亿次下载
    Python-dateutil 模块为标准的 datetime 模块提供了强大的功能扩展 。 普通的 Python datetime 无法做到的事情都可以使用 python-dateutil 完成 。
    用这个库可以完成许多非常酷的功能 。 我只举一个非常有用的例子:从日志文件中模糊解析日期字符串:
    from dateutil.parser import parselogline = 'INFO 2020-01-01T00:00:01 Happy new year, human.'timestamp = parse(log_line, fuzzy=True)print(timestamp)# 2020-01-01 00:00:016. requests
    6.11亿次下载
    Requests 基于下载量第一的库 urllib3 。 有了它 , 发送请求变得极其简单 。 许多人对 requests 的喜爱超过了 urllib3 , 因此 requets 的最终用户可能比 urllib3 还要多 。 后者更底层 , 通常作为其他项目的依赖出现 。
    下面的例子演示了 requests 有多么容易使用:
    import requestsr = requests.get('https://api.github.com/user', auth=('user', 'pass'))r.status_code# 200r.headers['content-type']# 'application/json; charset=utf8'r.encoding# 'utf-8'r.text# u'{"type":"User"...'r.json# {u'disk_usage': 368627, u'private_gists': 484, ...}7. s3transfer
    第3、7、17和22名互相关联 , 所以请参见第3名的介绍 。
    8. Certifi
    5.52亿次下载
    近年来 , 几乎所有网站都开始使用SSL , 这一点可以从地址栏中的锁图标看出来 , 该图标的意思是网站是安全的、加密的 , 可以避免窃听 。
    Python学习 Python,这 22 个包怎能不掌握?
    本文插图
    加密基于SSL证书 , SSL证书由可信的公司或非营利组织负责签发 , 如 LetsEncrypt 。 这些组织会对利用它们的证书对签发的证书进行数字签名 。
    利用这些证书的公开部分 , 浏览器就可以验证网站的签名 , 从而证明你访问的是真正的网站 , 而且别人没有在窃听数据 。
    Python 也可以做到同样的功能 , 这就需要用到 certifi 。 它和 Chrome、Firefox 和 Edge 等Web浏览器中包含的根证书集合没有什么区别 。
    Certifi 是一个根证书集合 , 这样 Python 代码就可以验证SSL证书的可信度 。
    许多项目都信赖并依赖 certifi , 可以在这里看到这些项目 。 这也是为何该项目排名如此高的原因 。
    9. Idna
    5.27亿次下载
    根据 PyPI 的页面 , idna提供“对于RFC5891中定义的IDNA协议(Internationalised Domain Names in Applications)的支持” 。
    我们来看看 idna 是什么意思:
    IDNA 是处理包含非 ASCII 字符的域名的规则 。 但原始的域名不是已经支持非 ASCII 字符了吗?那么问题何在?
    Python学习 Python,这 22 个包怎能不掌握?
    本文插图
    问题是许多应用程序(如Email客户端和Web浏览器等)并不支持非 ASCII 字符 。 或者更具体地说 , Email 和 HTTP 协议并不支持这些字符 。
    在许多国家这并不是问题 , 但像中国、俄罗斯、德国、印尼等国家就很不方便 。 因此 , 这些国家的一些聪明人联合起来提出了 IDNA , 也并非完全偶然 。


    推荐阅读