正確地組織python項目的結構 [轉載]

統一的項目結構

寫了不少python項目後, 越來越認識到Python項目結構重要性. 不管項目是否要開源, 是否要提交pypi, 項目結構的一致性帶來的好處還有很多: 多人合作開發大家都有個基本的guideline, 別人日後維護也方便, 也容易形成項目開發的best practice.

所以花了寫時間, 仔細研究了github上python的 top 10 項目的結構, 項目結構還真不太一樣. 比較合我口味的是sandman這個項目. 我做了少許的修改, 主要是將tests package 從sandman package下移到頂層目錄.

|- LICENSE
|- README.md
|- TODO.md
|- docs
| |-- index.md
| |-- installation.md
| |-- quickstart.md
|- sandman
| |-- init .py
| |-- exception.py
| |-- model.py
| |-- sandman.py
|- tests
| |-- init .py
| |-- test sandman.py
|- setup.py
|- tox.ini
|- .gitignore
|- requirements.txt
|- requirements
dev.txt ,比requirements.txt多的是單元測試依賴庫

Top 10項目的研究發現:

  1. readme.md和setup.py和requirements.txt放在根目錄下
  2. 一個項目至少有3個子目錄, docs目錄, root package 和tests package
  3. 的python代碼要放在一個package中, 而不是一般的src目錄中.
  4. tox 測試工具大家都在用.
  5. 用pytest和nose單元測試工具比較多, 尤其是pytest

腳手架工具:

下載並安裝cookiecutter命令行工具, 網站: 下載 pip install cookiecutter

[cookiecutter更詳細的教材]見: (http://pydanny.com/cookie-project-templates-made-easy.html)

參考:

http://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/

發佈了151 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章