今天跟大家分享一下如何快速實(shí)現(xiàn)一個(gè)Python CLI應(yīng)用程序的腳手架钻心,之所以會(huì)做這個(gè)是因?yàn)楫?dāng)時(shí)需要做一個(gè)運(yùn)維的小工具希望用命令行的方式來使用旅薄,但是搜遍網(wǎng)上很多資料都沒有系統(tǒng)講解從開發(fā)陈惰、集成绣张、發(fā)布堤结、文檔等一系列流程的文章养涮。
工程結(jié)構(gòu)
如上圖,這就是一個(gè)比較規(guī)范的Python CLI應(yīng)用項(xiàng)目了罐监,下面一一講下各文件的用途:
項(xiàng)目文檔
這里我們用Sphinx來實(shí)現(xiàn)文檔的自動(dòng)生成吴藻,當(dāng)然你要首先通過markdown和rst文件定義好文檔的內(nèi)容,然后進(jìn)入docs目錄執(zhí)行 make html命令就可以在_build目錄下生成對(duì)應(yīng)的靜態(tài)文件弓柱,如下圖:
具體Sphinx如何使用以及配置后面會(huì)單獨(dú)文章講解
主工程
這里講幾個(gè)需要注意的地方
1沟堡、日志的配置:
這里可以全局設(shè)置日志的一些輸出級(jí)別和格式化方式
2、cli文件
這里通過click庫來實(shí)現(xiàn)
3矢空、二進(jìn)制文件打包
如上圖航罗,有時(shí)候我們的工程中會(huì)包含二進(jìn)制文件,也就是非Python代碼的文件屁药,這時(shí)候如果還是像往常一樣打包發(fā)布粥血,安裝的時(shí)候會(huì)發(fā)現(xiàn)無法找到此文件,所以需要在根目錄的MANIFEST.in文件中加入
腳本
如下圖,這里的make-release文件主要是用來自動(dòng)控制版本的复亏,如下圖趾娃,通過Git 的提交記錄了來作為項(xiàng)目的唯一版本號(hào)標(biāo)識(shí),再對(duì)init文件進(jìn)行重新寫入達(dá)到持續(xù)集成時(shí)版本號(hào)自增的目的缔御。
單元測試
test文件夾中存放的就是項(xiàng)目的單元測試文件了抬闷,這里就不細(xì)展開講了,后面會(huì)具體講講如何跟Jenkins集成實(shí)現(xiàn)靜態(tài)代碼檢查
setup
最重要的就是setup.py這個(gè)文件了刹淌,項(xiàng)目最后打包發(fā)布到pypi倉庫主要的配置信息都在這里了饶氏,如下圖:
這個(gè)腳手架的項(xiàng)目地址:https://github.com/logan62334/python-cli-template
項(xiàng)目會(huì)持續(xù)更新,可以點(diǎn)擊閱讀原文訪問