統一的項目結構
寫了不少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項目的研究發現:
- readme.md和setup.py和requirements.txt放在根目錄下
- 一個項目至少有3個子目錄, docs目錄, root package 和tests package
- 的python代碼要放在一個package中, 而不是一般的src目錄中.
- tox 測試工具大家都在用.
- 用pytest和nose單元測試工具比較多, 尤其是pytest
腳手架工具:
下載並安裝cookiecutter命令行工具,
網站: 下載
pip install cookiecutter