Python | 一個(gè)快速實(shí)現(xiàn)CLI 應(yīng)用程序的腳手架

今天跟大家分享一下如何快速實(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)擊閱讀原文訪問


全棧增長工程師有勾,歡迎關(guān)注
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疹启,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔼卡,更是在濱河造成了極大的恐慌喊崖,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雇逞,死亡現(xiàn)場離奇詭異荤懂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)塘砸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門节仿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人掉蔬,你說我怎么就攤上這事廊宪。” “怎么了女轿?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵箭启,是天一觀的道長。 經(jīng)常有香客問我蛉迹,道長傅寡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任北救,我火速辦了婚禮荐操,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘珍策。我一直安慰自己淀零,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布膛壹。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪模聋。 梳的紋絲不亂的頭發(fā)上肩民,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音链方,去河邊找鬼持痰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛祟蚀,可吹牛的內(nèi)容都是我干的工窍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼前酿,長吁一口氣:“原來是場噩夢啊……” “哼患雏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起罢维,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤淹仑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后肺孵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匀借,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年平窘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吓肋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瑰艘,死狀恐怖是鬼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情磅叛,我是刑警寧澤屑咳,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站弊琴,受9級(jí)特大地震影響兆龙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜敲董,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一紫皇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腋寨,春花似錦聪铺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撒桨。三九已至,卻和暖如春键兜,著一層夾襖步出監(jiān)牢的瞬間凤类,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工普气, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谜疤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓现诀,卻偏偏與公主長得像夷磕,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子仔沿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容