Python 快速實現(xiàn)CLI 應(yīng)用程序的腳手架
今天跟大家分享一下如何快速實現(xiàn)一個Python CLI應(yīng)用程序的腳手架,之所以會做這個是因為當(dāng)時需要做一個運(yùn)維的小工具希望用命令行的方式來使用,但是搜遍網(wǎng)上很多資料都沒有系統(tǒng)講解從開發(fā)、集成、發(fā)布、文檔等一系列流程的文章。
工程結(jié)構(gòu)
如上圖,這就是一個比較規(guī)范的Python CLI應(yīng)用項目了,下面一一講下各文件的用途:
項目文檔
這里我們用Sphinx來實現(xiàn)文檔的自動生成,當(dāng)然你要首先通過markdown和rst文件定義好文檔的內(nèi)容,然后進(jìn)入docs目錄執(zhí)行 make html命令就可以在_build目錄下生成對應(yīng)的靜態(tài)文件,如下圖:
具體Sphinx如何使用以及配置后面會單獨文章講解
主工程
這里講幾個需要注意的地方
1、日志的配置:
這里可以全局設(shè)置日志的一些輸出級別和格式化方式
2、cli文件
這里通過click庫來實現(xiàn)
3、二進(jìn)制文件打包
如上圖,有時候我們的工程中會包含二進(jìn)制文件,也就是非Python代碼的文件,這時候如果還是像往常一樣打包發(fā)布,安裝的時候會發(fā)現(xiàn)無法找到此文件,所以需要在根目錄的MANIFEST.in文件中加入
腳本
如下圖,這里的make-release文件主要是用來自動控制版本的,如下圖,通過Git 的提交記錄了來作為項目的唯一版本號標(biāo)識,再對 init 文件進(jìn)行重新寫入達(dá)到持續(xù)集成時版本號自增的目的。
單元測試
test文件夾中存放的就是項目的單元測試文件了,這里就不細(xì)展開講了,后面會具體講講如何跟Jenkins集成實現(xiàn)靜態(tài)代碼檢查
setup
最重要的就是setup.py這個文件了,項目最后打包發(fā)布到pypi倉庫主要的配置信息都在這里了,如下圖:
這個腳手架的項目地址:https://github.com/logan62334/python-cli-template
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明
這篇文章主要介紹了Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04python中__call__內(nèi)置函數(shù)用法實例
這篇文章主要介紹了python中__call__內(nèi)置函數(shù)用法,實例分析了python中__call__內(nèi)置函數(shù)的原理與使用技巧,需要的朋友可以參考下2015-06-06pandas使用fillna函數(shù)填充NaN值的代碼實例
最近在工作中遇到一個問題,pandas讀取的數(shù)據(jù)中nan在保存后變成空字符串,所以下面這篇文章主要給大家介紹了關(guān)于pandas使用fillna函數(shù)填充NaN值的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07python使用open函數(shù)對文件進(jìn)行處理詳解
今天看了open函數(shù),看到w+ r+ a+ 這種可讀可寫的操作,下面這篇文章主要給大家介紹了關(guān)于python使用open函數(shù)對文件進(jìn)行處理的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05Pytorch實現(xiàn)張量的創(chuàng)建與使用方法
本文主要介紹了Pytorch實現(xiàn)張量創(chuàng)建使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08