正確地組織python專案的結構

2021-09-06 13:38:08 字數 1121 閱讀 4536

寫了不少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多的是單元測試庫

readme.md和setup.py和requirements.txt放在根目錄下

乙個專案至少有3個子目錄, docs目錄, root package 和tests package

的python**要放在乙個package中, 而不是一般的src目錄中.

tox 測試工具大家都在用.

用pytest和nose單元測試工具比較多, 尤其是pytest

pip install cookiecutter

cookiecutter更詳細的教材

jeffknupp的雄文

正確地使用Checked Exception

正確地使用checked exception 實際上,如何正確地使用checked exception已經在前面的各章節講解中進行了詳細地說明。在這裡我們再次做乙個總結,同時也用來加深一下印象。從api編寫者的角度來講,他所需要考慮的就是在何時使用乙個checked exception。首先,che...

正確地啟動hadoop

環境 ubuntu16.04系統 64位 apache hive 3.0.0 bin spark 2.3.1 bin hadoop2.7 scala2.11 hosts配置 etc hosts中注意hostname不要和127.0.0.1繫結 219.223.207.228 ubuntu 127.0...

荀子 怎樣正確地做事?

凡觀物有疑,中心不定,則外物不清。吾慮不清,未可定然否也。凡是觀察事物不明白,心中不能肯定,那麼對外物就審查不清楚,理解就不清晰,那麼就不可能確定是對還是錯。冥冥而行者,見寢石以為伏虎也,見植林以為後人也 冥冥蔽其明也。醉者越百步之溝,以為蹞步之澮也 俯而出城門,以為小之閨也 酒亂其神也。厭目而視者...