推薦一些相見恨晚的 Python 庫 「二」
作者:馬超
來源:微信公眾號 DeveloperPython
更多精彩文章,關注專欄:學習編程 - 知乎專欄
上一篇文章 推薦一些相見恨晚的 Python 庫 「一」 對 Awesome Python 做了個簡單的介紹,同時匯總了一部分優秀的 Python 庫,那麼這篇文章繼續安利一些相見恨晚的庫,旨在讓你在需要的時候能夠派上用場。
在安利之前,聊聊其他的事情。
最近這兩天抽空研究了一下「新技術」 ReactNative,話說這個 RN 也是火了很長時間了,不過一直沒有憋出個 1.0 版本。因此對於開發者來講,從環境到使用會有各種坑需要踩。不過還好有 stackoverflow ,大部分問題都能查到。同時,借著這篇文章問下大家,若有對 RN 感興趣或者正在使用 RN 開發的同學,可以在公眾號後台回復 RN 獲取到 微信群二維碼,我們一起交流前進。
好了說正事,
這篇文章同樣是翻譯自 Awesome Python 的匯總,主要包括:命令行工具庫、Python 版本兼容性庫、計算機視覺庫、並發和並行庫、Python 配置庫、密碼學、數據分析、數據校驗、數據可視化以及資料庫的一些 Python 庫。希望對你的工作有用。
1. 命令行工具 ( Command-line Tools)
創建命令行程序的庫
命令行程序開發
- asciimatics - 跨平台、全屏終端包(i.e. 滑鼠/鍵盤輸入、彩色、定位文本輸出),完整的複雜動畫和特效的高級 API
https://github.com/peterbrittain/asciimatics
- cement - Python 的命令行 (CLI) 應用框架
http://builtoncement.com/
- click - 一個通過組合(composable)方式來創建漂亮命令行工具的包
http://click.pocoo.org/dev/
- cliff - 一個可以創建多層(multi-level)命令的命令行程序框架
https://docs.openstack.org/developer/cliff/
- clint - Python 命令行程序工具
https://github.com/kennethreitz/clint
- colorama - 跨平台(Cross-platform)的彩色(colored)終端文本
http://grappelliproject.com/
- docopt - 很 Python(Pythonic) 風格的命令行參數解析器
http://docopt.org/
- Gooey - 一條命令將命令行程序轉化為一個 GUI 程序 (Turn...into...)
https://github.com/chriskiehl/Gooey
- Python-Fire - 一個用於從任何 Python 對象創建命令行界面 (CLI) 的庫
https://github.com/google/python-fire
- python-prompt-toolkit - 一個用於構建強大的互動式命令行程序的庫
https://github.com/jonathanslenders/python-prompt-toolkit
2. 生產力工具
- aws-cli - AWS 的通用命令行界面
https://github.com/aws/aws-cli
- bashplotlib - 在終端中進行基本的繪圖操作
https://github.com/glamp/bashplotlib
- caniusepython3 - 判斷哪些項目 block 了你移植到 Python3 的工作
https://github.com/brettcannon/caniusepython3
- cookiecutter - 從 cookiecutters(項目模板)中創建項目的一個命令行工具
https://github.com/audreyr/cookiecutter
- doitlive - 一個用來在終端中進行現場演示的工具
https://github.com/sloria/doitlive
- howdoi - 通過終端即時的獲取編程問題的答案
https://github.com/gleitz/howdoi
- httpie - cURL 的替代品,一個命令行 HTTP 客戶端
https://github.com/jakubroztocil/httpie
- mycli - 一個 MySQL 的命令行客戶端,具有自動補全和語法高亮的功能
https://github.com/dbcli/mycli
- PathPicker - 從 bash中輸出選中的文件
https://github.com/facebook/PathPicker
- percol - 在 UNIX shell 傳統管道中加入互動式選擇功能
https://github.com/mooz/percol
- pgcli - Postgres 命令行工具,具有自動補全和語法高亮的功能
https://github.com/dbcli/pgcli
- SAWS - 加強版的 AWS 命令行 ( Supercharged)
https://github.com/donnemartin/saws
- thefuck - 修正你之前的命令行指令 (Correcting)
https://github.com/nvbn/thefuck
- try - 一個絕逼簡單的命令行工具,用來試用 Python 庫 (It`s never been easier)
https://github.com/nvbn/thefuck
3. 兼容性 (Compatibility)
幫助從 Python 2 遷移到 Python 3 的庫
- Python-Future - Python 2 和 3 之間丟失的那個兼容性層
http://python-future.org/index.html
- Python-Modernize - 使當前 Python 代碼更加現代化,以便於最終遷移到 Python3
https://github.com/mitsuhiko/python-modernize
- six- 666, Python2 和 3 的兼容性工具
https://pypi.python.org/pypi/six
4. 計算機視覺 ( Computer Vision)
計算機視覺庫
- OpenCV - 開源的計算機視覺庫
http://opencv.org/
- pyocr- Tesseract 和 Cuneiform 的封裝庫 (wrapper)
https://github.com/openpaperwork/pyocr
- pytesseract - Google Tesseract OCR 的另一個封裝庫
https://github.com/madmaze/pytesseract
- SimpleCV- 一個用來創建計算機視覺應用的開源框架
http://simplecv.org/
並發和並行 ( Concurrency and Parallelism )
用於操作並發和並行的庫
- eventlet - 支持 WSGI 的非同步框架 ( Asynchronous)
http://eventlet.net/
- gevent - 使用 greenlet的一個基於協程的 Python 網路庫(coroutine-based)
http://www.gevent.org/
- multiprocessing - (Python 標準庫) 基於進程的「 線程 」介面
https://docs.python.org/2/library/multiprocessing.html
- theading - (Python 標準庫) 更高層的線程介面
https://docs.python.org/2/library/threading.html
- Tomorrow - 神奇的產生非同步代碼的裝飾器語法實現(Magic decorator syntax)
https://github.com/madisonmay/Tomorrow
- uvloop- 在 libuv 之上超快速實現 asyncio 事件循環
https://github.com/MagicStack/uvloop
5. 配置 ( Configuration )
用來保存和解析配置的庫
- config - logging 模塊作者編寫的分級配置模塊 (Hierarchical)
https://www.red-dove.com/config-doc/
- ConfigObj - 帶驗證功能的 INI 文件解析器 ( validation)
http://www.voidspace.org.uk/python/configobj.html
- ConfigParser - ( Python 標準庫 ) INI 文件解析器
https://docs.python.org/2/library/configparser.html
- profig - 具有數值轉換功能的,多種格式進行配置的庫
http://profig.readthedocs.org/en/default/
- python-decouple - 將設置和代碼完全隔離 ( Strict separation)
https://github.com/henriquebastos/python-decouple
密碼學
- cryptography - 這個軟體包,旨在提供密碼學基礎內容和方法給 Python 開發者
https://cryptography.io/en/latest/
- hashids - 用 Python 實現的 hashids
https://github.com/davidaurelio/hashids-python
- Paramiko - SSHv2 協議的 Python 庫 (2.6+ 3.3+),提供客戶端和伺服器的功能
http://www.paramiko.org/
- Passlib - 安全密碼存儲/哈希庫,非常牛逼
https://pythonhosted.org/passlib/
- PyNacl - 網路和密碼學(NaCI)庫的 Python 結合
https://github.com/pyca/pynacl
6. 數據分析(Data Analysis)
數據分析的庫
- Blaze - NumPy 和 Pandas 的大數據介面
https://github.com/blaze/blaze
- Open Mining - 商業情報(BI)的 Pandas 介面
https://github.com/mining/mining
- Orange - 通過可視化編程或者 Python 腳本進行數據挖掘、數據可視化、分析和機器學習
https://orange.biolab.si/
- Pandas - 提供高性能,易用的數據結構和數據分析工具
http://pandas.pydata.org/
數據校驗(Data Validation)
數據校驗庫,對用於表單校驗
- Cerberus - 輕量級的可擴展的數據校驗庫
https://github.com/pyeve/cerberus
- colander -一個用於對 XML、JSON、HTML 以及其他同樣簡單的序列化數據進行校驗和反序列化的庫
https://docs.pylonsproject.org/projects/colander/en/latest/
- jsonschema - JSON Schema 的 Python 實現
https://github.com/Julian/jsonschema
- schema - 校驗 Python 數據結構的庫
https://github.com/keleshev/schema
- Schematics - 數據結構驗證
https://github.com/schematics/schematics
- valideer - 輕量級可擴展的數據驗證和適配庫
https://github.com/podio/valideer
- voluptuous - 一個 Python 數據校驗庫。主要為了驗證傳入 Python 的 JSON、YAML等數據
https://github.com/alecthomas/voluptuous
7. 數據可視化(Data Visualization)
進行數據可視化的庫。
- Altair - Python 的聲明式統計可視化庫
https://github.com/altair-viz/altair
- Bokeh - 用 Python 進行互動式的 Web 繪圖(Interactive)
https://github.com/bokeh/bokeh
- ggplot - ggplot2 給 R 提供的 API 的 Python 版本
https://github.com/yhat/ggpy
- Matplotlib - 一個 Python 2D 繪圖庫
http://matplotlib.org/
- Pygal - 一個 Python SVG 圖標創建工具
http://www.pygal.org/en/latest/
- PyGraphviz - Graphviz 的 Python 介面
https://pypi.python.org/pypi/pygraphviz
- PyQtGraph - 互動式實時 2D/3D/圖像繪製及科學/工程學組件
http://www.pyqtgraph.org/
- Seaborn - 使用 Matplotlib 進行統計數據可視化
https://github.com/mwaskom/seaborn
- VisPy - 基於 OpenGL 的高性能科學可視化工具
https://github.com/vispy/vispy
8. 資料庫(Database)
Python 實現的資料庫
- pickleDB - 一個簡單、輕量級的鍵值儲存資料庫
https://pythonhosted.org/pickleDB/
- PipelineDB - 流式 SQL 資料庫
https://www.pipelinedb.com/
- TinyDB - 一個微型的、面向文檔型的資料庫
https://github.com/msiemens/tinydb
- ZODB - 一個 Python 原生對象資料庫。一個鍵值和對象圖資料庫
http://www.zodb.org/en/latest/
最後,要說的話都在文章開頭!!!
推薦閱讀:
※學會最簡單的資料庫|看完這7招就夠了
※Python 高級編程:理解生成器
※Python Generator漫談
※在 Pycom 使用 Python + Micropython + MQTT 進行物聯網編程
※Python 字元編碼的二三事