Python 快速实现CLI 应用程序的脚手架

yipeiwu_com6年前Python基础

今天跟大家分享一下如何快速实现一个Python CLI应用程序的脚手架,之所以会做这个是因为当时需要做一个运维的小工具希望用命令行的方式来使用,但是搜遍网上很多资料都没有系统讲解从开发、集成、发布、文档等一系列流程的文章。

工程结构

如上图,这就是一个比较规范的Python CLI应用项目了,下面一一讲下各文件的用途:

项目文档

这里我们用Sphinx来实现文档的自动生成,当然你要首先通过markdown和rst文件定义好文档的内容,然后进入docs目录执行 make html命令就可以在_build目录下生成对应的静态文件,如下图:

具体Sphinx如何使用以及配置后面会单独文章讲解

主工程

这里讲几个需要注意的地方

1、日志的配置:

这里可以全局设置日志的一些输出级别和格式化方式

2、cli文件

这里通过click库来实现

3、二进制文件打包

如上图,有时候我们的工程中会包含二进制文件,也就是非Python代码的文件,这时候如果还是像往常一样打包发布,安装的时候会发现无法找到此文件,所以需要在根目录的MANIFEST.in文件中加入

脚本

如下图,这里的make-release文件主要是用来自动控制版本的,如下图,通过Git 的提交记录了来作为项目的唯一版本号标识,再对 init 文件进行重新写入达到持续集成时版本号自增的目的。

单元测试

test文件夹中存放的就是项目的单元测试文件了,这里就不细展开讲了,后面会具体讲讲如何跟Jenkins集成实现静态代码检查

setup

最重要的就是setup.py这个文件了,项目最后打包发布到pypi仓库主要的配置信息都在这里了,如下图:

这个脚手架的项目地址:https://github.com/logan62334/python-cli-template

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python基于QRCode实现生成二维码的方法【下载,安装,调用等】

本文实例讲述了Python基于QRCode实现生成二维码的方法。分享给大家供大家参考,具体如下: QR码是一种矩阵码,或二维空间的条码,1994年由日本Denso-Wave公司发明。QR...

Python生成器以及应用实例解析

本文研究的主要是Python生成器及其应用,具体如下。 一、定义 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法),所以生...

pygame学习笔记(2):画点的三种方法和动画实例

pygame学习笔记(2):画点的三种方法和动画实例

1、单个像素(画点) 利用pygame画点主要有三种方法: 方法一:画长宽为1个像素的正方形 复制代码 代码如下: import pygame,sys pygame.init() scr...

Jupyter中直接显示Matplotlib的图形方法

Jupyter中直接显示Matplotlib的图形方法

一.使用以下cmd命令生成ipython_config.py 文件 ipython profile create 二.在ipython_config.py中添加以下代码 c....

Python多线程threading模块用法实例分析

Python多线程threading模块用法实例分析

本文实例讲述了Python多线程threading模块用法。分享给大家供大家参考,具体如下: 多线程 - threading python的thread模块是比较底层的模块,python...