為大家收集了一些最常用的Python包
我們從最常用的 Python 包入手,去解答上述這個問題。最初,我列出過去一年在 PyPI 上下載次數最多的 Python 包。接下來,深入研究其用途、它們之間的關系和它們備受歡迎的原因。
1、Urllib3
下載次數:8.93 億
Urllib3是一個 Python 的 HTTP 客戶端,它擁有 Python 標準庫中缺少的許多功能:
線程安全
連接池
客戶端 SSL/TLS 驗證
使用分段編碼上傳文件
用來重試請求和處理 HTTP 重定向的助手
支持 gzip 和 deflate 編碼
HTTP 和 SOCKS 的代理支持不要被名字所誤導,Urllib3并不是urllib2的后繼者,而后者是 Python 核心的一部分。如果你想使用盡可能多的 Python 核心功能,或者你能安裝什么東西是受限,那么請查看 urlllib.request。
對最終用戶來說,我強烈建議使用 requests 包。這個包之所以會排名第一,是因為有差不多 1200 個包依賴 urllib3,其中許多包在這個列表中的排名也很高。
2、Six
下載次數:7.32 億
six 是一個是 Python 2 和 3 的兼容性庫。這個項目旨在支持可同時運行在 Python 2 和 3 上的代碼庫。
它提供了許多可簡化 Python 2 和 3 之間語法差異的函數。一個容易理解的例子是six.print_()。在 Python 3 中,打印是通過print()函數完成的,而在 Python 2 中,print后面沒有括號。因此,有了six.print_()后,你就可以使用一個語句來同時支持兩種語言。
一些事實:
它的名字叫six,是因為二乘以三等于六。
同類庫還可以看看future包。
如果你要將代碼轉換為 Python3(并停止支持 2),請查看 2to3。雖然我理解它為什么這么受歡迎,但我希望人們能完全放棄 Python 2,因為要知道從 2020 年 1 月 1 日起 Python 2 的官方支持就已停止。
3、botocore、boto3、s3transfer、awscli
這里,我把相關的幾個項目列在一起:
botocore(#3,6.6 億次下載)
s3transfer(#7,5.84 億次下載)
awscli(#17,3.94 億次下載)
boto3(#22,3.29 億次下載)
Botocore是 AWS 的底層接口。Botocore是 Boto3 庫(#22)的基礎,后者讓你可以使用 Amazon S3 和 Amazon EC2 一類的服務。Botocore 還是 AWS-CLI 的基礎,后者為 AWS 提供統一的命令行界面。
S3transfer(#7)是用于管理 Amazon S3 傳輸的 Python 庫。它正在積極開發中,其介紹頁面不推薦人們現在使用,或者至少等版本固定下來再用,因為其 API 可能發生變化,在次要版本之間都可能更改。Boto3、AWS-CLI和其他許多項目都依賴s3transfer。
令人驚訝的是,這些針對 AWS 庫的排名竟如此之高——這充分說明了 AWS 有多厲害。
4、Pip
下載次數:6.27 億
我想,你們大多數人都知道并且很喜歡 pip,它是 Python 的包安裝器。你可以用 pip 輕松地從 Python 包索引和其他索引(例如本地鏡像或帶有私有軟件的自定義索引)來安裝軟件包。
有關 pip 的一些有趣事實:
pip是“Pip Installs Packages”的首字母遞歸縮寫。
pip很容易使用。要安裝一個包只需pip install <package name>即可,而刪除包只需pip uninstall <package name>即可。
最大優點之一是它可以獲取包列表,通常以requirements.txt文件的形式獲取。該文件能選擇包含所需版本的詳細規范。大多數 Python 項目都包含這樣的文件。
如果結合使用pip與virtualenv(列表中的 #57),就可以創建可預測的隔離環境,同時不會干擾底層系統,反之亦然。
5、Python-dateutil
下載次數:6.17 億
python-dateutil模塊提供了對標準datetime模塊的強大擴展。我的經驗是,常規的Python datetime缺少哪些功能,python-dateutil就能補足那一塊。
你可以用這個庫做很多很棒的事情。其中,我發現的一個特別有用的功能就是:模糊解析日志文件中的日期,例如:
from dateutil.parser import parselogline = 'INFO 2020-01-01T00:00:01 Happy ew year, human.'timestamp = parse(log_line, fuzzy=True)print(timestamp)# 2020-01-01 00:00:01
6、Requests
下載次數:6.11 億
Requests建立在我們的 #1 庫——urllib3基礎上。它讓 Web 請求變得非常簡單。相比urllib3來說,很多人更喜歡這個包。而且使用它的最終用戶可能也比urllib3更多。后者更偏底層,并且考慮到它對內部的控制級別,它一般是作為其他項目的依賴項。
下面這個例子說明 requests 用起來有多簡單:
import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
# 200
r.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, ...}
好啦!今天的分享到這里就結束了,希望大家持續關注馬哥教育官網,每天都會有大量優質內容與大家分享!
文章來源:架構頭條,版權聲明:轉載文章來自公開網絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯系刪除或授權事宜。