2011年5月17日 星期二

Python 生態圈

身為一名 Python Guy, 怎麼可以連發兩篇 Perl 的心得文卻沒發 Python 的心得文呢? 來補寫篇 Python 相關體系, 算是這兩年來寫 Python 的心得吧。

入門書

安裝環境

  • pip + virtualenv: 以前用 easy_install, 現在已轉為以 pip + virtualenv 為主。可幫整個 OS 或個人裝自己用的函式庫。這一年來兩者版號跳得很快, 原本就夠好用了, 期待它們的後續發展。
  • PyPI: Python 的 package 集散中心, 不過也很少會上來找東西。大多 google 一下, 就 pip instrall PKG。若 PyPI 有的話, 自然會裝起來, 沒有的話, 再自己找官方 VCS 網址, 或下載 tarball。

開發工具

  • vim: 不需多介紹的神兵利器。相關設定: 設定顏色。
  • ipython: 查函式和快速測試的好幫手。不知其它語言裡有沒有類似順手的工具。
  • pycscope: python 版的 cscope, 據說會準一點。
  • ipdb, 用 ipython 強化後的 debugger。

文件系統

  • Sphinx: 超精美的文件產生工具。
  • Epydoc: 精美的 API 手冊產生工具, 有針對 dynamic typing 的特性產生參照連結。

測試工具

  • nosetests: 執行測試碼的好幫手, 強大之處見這裡的說明。
  • unittest2: 比 unittest 方便不少, 並且有和 unittest 向下相容, 見這裡的說明。

部署工具

  • fabric: 取代 shell script 的「框架工具」, 方便跨機器以及組合不同細項工作。

版本管理

  • mercurial: 雖說程式語言和版本管理工具並無相關, 但 Python Guy 似乎大多喜歡用 mercurial。bitbucket 提供線上使用 mercurial, 但我一開始就用 Google Code 和 Github, 就沒在用它了。

常用函式庫

大概列一下, 這種清單太多, 也超出我能力所及。
  • lxml: 處理 XML 和 HTML, 支援 xpath 和 css path, 底層用 C, 速度勝過其它類似的函式庫。
  • simplejson (2.6 後已內建 json): 個人覺得一個語言有內建 json lib, 實在是相當地親民啊。
  • requests: 這裡這裡有 python 一堆 http lib 的討論, 看來 requests 是不錯的選擇, 試用了一下確實很直覺。之前用過 httplib2 覺得也不壞啦。Btw, Python 還有內建 web server, 挺奇妙的決定。
  • numpy: 科學運算的好幫手, 底層都用 C, 效能很好。不過我沒什麼機會用它就是了。
  • matplotlib2: 畫圖的強大工具
  • Bottle: 對於一般簡單的需求來說, 滿不錯的 web framework, 容易上手容易除錯, 效能也不錯
  • gevent: 直覺易用效能也不錯的 event driven framework
  • ...

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...