Python 快速實現(xiàn)CLI 應用程序的腳手架
今天跟大家分享一下如何快速實現(xiàn)一個Python CLI應用程序的腳手架,之所以會做這個是因為當時需要做一個運維的小工具希望用命令行的方式來使用,但是搜遍網(wǎng)上很多資料都沒有系統(tǒng)講解從開發(fā)、集成、發(fā)布、文檔等一系列流程的文章。
工程結構

如上圖,這就是一個比較規(guī)范的Python CLI應用項目了,下面一一講下各文件的用途:
項目文檔
這里我們用Sphinx來實現(xiàn)文檔的自動生成,當然你要首先通過markdown和rst文件定義好文檔的內(nèi)容,然后進入docs目錄執(zhí)行 make html命令就可以在_build目錄下生成對應的靜態(tài)文件,如下圖:

具體Sphinx如何使用以及配置后面會單獨文章講解
主工程
這里講幾個需要注意的地方
1、日志的配置:
這里可以全局設置日志的一些輸出級別和格式化方式

2、cli文件
這里通過click庫來實現(xiàn)

3、二進制文件打包

如上圖,有時候我們的工程中會包含二進制文件,也就是非Python代碼的文件,這時候如果還是像往常一樣打包發(fā)布,安裝的時候會發(fā)現(xiàn)無法找到此文件,所以需要在根目錄的MANIFEST.in文件中加入

腳本
如下圖,這里的make-release文件主要是用來自動控制版本的,如下圖,通過Git 的提交記錄了來作為項目的唯一版本號標識,再對 init 文件進行重新寫入達到持續(xù)集成時版本號自增的目的。

單元測試
test文件夾中存放的就是項目的單元測試文件了,這里就不細展開講了,后面會具體講講如何跟Jenkins集成實現(xiàn)靜態(tài)代碼檢查
setup
最重要的就是setup.py這個文件了,項目最后打包發(fā)布到pypi倉庫主要的配置信息都在這里了,如下圖:

這個腳手架的項目地址:https://github.com/logan62334/python-cli-template
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python 中使用 argparse 解析命令行參數(shù)
這篇文章主要介紹了Python 中使用 argparse 解析命令行參數(shù),argparse 模塊是一個強大的命令行參數(shù)解析器,還有很多功能沒能在這里介紹。下面文化在哪個詳細介紹該內(nèi)容,需要的朋友可以參考一下2021-11-11
Python使用__new__()方法為對象分配內(nèi)存及返回對象的引用示例
這篇文章主要介紹了Python使用__new__()方法為對象分配內(nèi)存及返回對象的引用,結合實例形式分析了Python對象初始化及內(nèi)存操作相關使用技巧,需要的朋友可以參考下2019-09-09
python如何實現(xiàn)wifi自動連接,解決電腦wifi經(jīng)常斷開問題
這篇文章主要介紹了python實現(xiàn)wifi自動連接,解決電腦wifi經(jīng)常斷開的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
python實現(xiàn)輸入任意一個大寫字母生成金字塔的示例
這篇文章主要介紹了python實現(xiàn)輸入任意一個大寫字母生成金字塔的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
詳解如何使用Python在PDF文檔中創(chuàng)建動作
PDF格式因其跨平臺兼容性和豐富的功能集而成為許多行業(yè)中的首選文件格式,其中,PDF中的動作(Action) 功能尤為突出,本文將介紹如何使用Python在PDF文檔中創(chuàng)建動作,需要的朋友可以參考下2024-09-09

