推薦一些能能提高生產力的 Python 庫

閱讀本文大概需要 3 分鐘。

一門語言好用、方便的程度在很多時候會取決於這門語言相關的庫夠不夠豐富,Python 之所以火爆除了其本身的語法和特性之外,還在一定程度上取決於其有太多太多庫的支持,不論是官方維護的還是第三方開發的。就比如說做機器學習爲什麼很多人都用 Python,一個非常大的因素就是 TensorFlow 和 PyTorch 對 Python 的支持。當然在這裏並不是說 Python 的庫真的就全的不要不要的,它在某些領域或者項目的生態還是有待完善的。

正好昨天刷到知乎一個問題「你見過哪些相見恨晚的 Python 庫?」,其意就是想了解下有哪些非常好用的提高生產力的 Python 庫。一些回答直接把 awesome-python 貼過來,點贊非常多,當然多歸多,但是裏面很多都是些過期的或者其實沒太有什麼價值的庫,反而會增加了挑選庫的成本。我大體上把一些回答過了一遍,另外結合自己平時瞭解的內容,稍微對一些基礎生產力庫做了簡單的梳理,在這裏分享給大家。

所以這裏就不再針對於一些特殊的場景推薦了,如一些 Web開發庫、網絡請求庫、數據操作庫、數據分析庫、機器分析庫等等。下面主要羅列一些適用範圍和方向較廣,對於一些基礎設施的建設比較有用,能在多數場景下提高 Python 生產力的庫,描述比較簡單,主要是提供一個列表,僅供參考哈。

attrs、cattrs

GitHub:https://github.com/python-attrs/attrs、https://github.com/Tinche/cattrs

簡化類的定義、序列化反序列化等操作。

個人寫的簡介:https://mp.weixin.qq.com/s/oHK-Y4lOeaQCFtDWgqXxFA

loguru

GitHub:https://github.com/Delgan/loguru

可簡化日誌記錄寫法。

個人寫的簡介:https://mp.weixin.qq.com/s/5Ri1WS5cTGCNAQ0I_zYycg

autopep8

GitHub:https://github.com/hhatto/autopep8

把 Python 代碼轉成符合 PEP8 規範的代碼。

psutil

GitHub:https://github.com/giampaolo/psutil

Python 實現任務監控的庫。

furl

GitHub:https://github.com/gruns/furl

對 url 的處理非常方便,比 urllib 等庫好用多。

retrying、tenacity

GitHub:https://github.com/rholder/retrying、https://github.com/jd/tenacity

異常重試庫,如出錯之後重試多少次,尤其在發起一些 HTTP 請求時非常有用,當然也能用於其他地方。

typing

Docs:https://docs.python.org/zh-cn/3/library/typing.html#module-typing

對 Python 類型的支持,支持多種類型、嵌套類型,也推薦多多使用 Python 的類型註解。

argparse

Docs:https://docs.python.org/zh-cn/3/library/argparse.html

個人曾經使用過幾個命令行解析工具,如 docopt,但後來還是轉回來了 argparse,功能齊全強大。

absl-py

GitHub:https://github.com/abseil/abseil-py

個人感覺比 argparse 更易用的庫,如 TensorFlow 就在使用這個,對於定義一些 Flag 非常方便。

pipenv

GitHub:https://github.com/pypa/pipenv

功能更全的包管理工具,集成虛擬環境、支持 Lock 機制鎖定安裝包版本和依賴信息。當然也有坑點,可自行搜索。

drf

Docs:https://www.django-rest-framework.org/

基於 Django 的 REST Framework,快速實現 REST API。

watchdog

GitHub:https://github.com/gorakhargosh/watchdog

方便監視文件系統改動。

glob

Docs:https://docs.python.org/3/library/glob.html

對文件的操作非常方便。

2to3

Docs:https://docs.python.org/2/library/2to3.html

把 Python2 代碼轉成 Python3 代碼。

glom

GitHub:https://github.com/mahmoud/glom

對 JSON 嵌套的處理非常方便。

pathlib

Docs:https://docs.python.org/3/library/pathlib.html

更爲方便的 Python 路徑操作庫。

environs

GitHub:https://github.com/sloria/environs

對於環境變量的獲取非常方便,支持多種類型,如 int、bool 等。

pysnooper

GitHub:https://github.com/cool-RR/PySnooper

非常方便簡單的 Python 調試器,可以追蹤到代碼每一處細節的執行狀態。

tqdm

GitHub:https://github.com/tqdm/tqdm

進度條控制顯示非常方便。

sh

GitHub:https://github.com/amoffat/sh

對 Linux 一些命令的封裝,簡單好用又高效。

faker

GitHub:https://github.com/joke2k/faker

模擬數據的生成。

個人寫的簡介:https://mp.weixin.qq.com/s/iLjr95uqgTclxYfWWNxrAA

arrow、dateutil、dateparser、pendulum

GitHub:https://github.com/crsmithdev/arrow、https://github.com/dateutil/dateutil、https://github.com/scrapinghub/dateparser、https://github.com/sdispater/pendulum

時間解析和處理庫,非常方便。arrow 目前 Star 最多,好評最多。

yagmail

GitHub:https://github.com/kootenpv/yagmail

方便的發郵件庫,替代自帶的 smtplib。

chardet

GitHub:https://github.com/chardet/chardet

字符串類型編碼檢測。

pypinyin

GitHub:https://github.com/mozillazg/python-pinyin

漢字轉拼音,在一些中文轉化處理上很有用。

個人寫的簡介:https://mp.weixin.qq.com/s/NvA3j8Ns1-6CFgWpUcWwQw

sphinx

Docs:https://www.sphinx-doc.org/en/master/

編寫文檔使用,大多數 Python 庫文檔都是這個寫的,如 Scrapy、requests。

個人 sphinx + markdown 的樣例:https://github.com/Gerapy/Docs

jinja2

GitHub:https://github.com/pallets/jinja

一個方便的模板引擎,呈現頁面時很方便。

click

GitHub:https://github.com/pallets/click

更方便靈活地實現命令行傳遞參數。

ray

GitHub:https://github.com/ray-project/ray

分佈式多進程管理。

supervisor

GitHub:https://github.com/Supervisor/supervisor

進程管理工具,如實現多任務後臺運行,Docker 打包時會經常用到。

apscheduler

GitHub:https://github.com/agronholm/apscheduler

Python 定時任務,不過 K8S 也可以實現,個人目前可能更傾向於 K8S。

intelpython

Home:https://software.intel.com/en-us/distribution-for-python

這不是 Python 庫,是一個 Intel 開發的基於 Intel 處理器優化的 Python 解釋器,對於大規模運算提升很大。

完畢。

好啦,先推薦這麼多了,後面還會慢慢積累,大家可以瞭解下,個人感覺有不少庫還是能極大提高生產力的。

由於這次主要是推薦一些適用範圍和方向較廣,個人感覺對於一些基礎設施的建設比較有用的庫,所以一些 Web、爬蟲、數據分析、機器學習等庫就沒有列在這裏了。當然也由於個人水平有限,也有很多庫沒有列全,如果大家有推薦的,歡迎留言分享哈!

-END-

來和小夥伴們一起向上生長呀!

掃描下方二維碼,添加小詹微信,可領取千元大禮包並申請加入專屬【Python】學習交流羣,羣內僅提供學術交流,日常互動,如果是想發推文、廣告、砍價小程序的敬請繞道!一定記得備註【交流學習】,我會盡快通過好友申請哦

▷長按識別,添加微信◁

(人數較多,請耐心等待)

▷長按識別,關注小詹◁

(掃碼回覆 1024  領取程序員大禮包)

好文和朋友一起看~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章