click python cli 开发包
python click 包是一个方便的cli 开发包,我们可以用来开发强大的cli 应用
使用venv 进行环境准备,示例代码来自官方
venv 环境准备
python3 -m venv demoapp
安装
pip install click
基本使用
- 代码
cli.py
import click
@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name",
help="The person to greet.")
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for _ in range(count):
click.echo("Hello, %s!" % name)
if __name__ == '__main__':
hello()
- 运行
python cli.py
效果
python cli.py
Your name: dalong
Hello, dalong!
制作一个pip 包
制作pip 包可以方便进行我们的代码分发,还是使用venv 进行环境的准备
- 项目结构
├── README.md
├── cli
│ └── __init__.py
└── setup.py
- 代码说明
cli/init.py 核心代码
import click
@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name",
help="The person to greet.")
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for _ in range(count):
click.echo("Hello, %s!" % name)
if __name__ == '__main__':
hello()
setup.py pip 包配置
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="dalongrong_cli-demo",
version="0.0.1",
author="dalongrong",
author_email="1141591465@qq.com",
description="a simple cli project",
long_description=long_description,
install_requires=['click'],
long_description_content_type="text/markdown",
url="https://github.com/rongfengliang/click-cli-demo.git",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
entry_points={
'console_scripts': [
'dalongcli=cli:hello',
],
}
)
- 本地安装测试
pip install .
cli 使用命令
dalongcli --name dalong --count 3
效果
Hello, dalong!
Hello, dalong!
Hello, dalong!
- 说明
比较好的方法是push 到pip 私服(企业内部),或者push 到公共pip 仓库,方便大家都使用,具体的可以参考 自定义pip 开发
参考资料
https://github.com/pallets/click
https://click.palletsprojects.com/en/7.x/
https://www.cnblogs.com/rongfengliang/p/10219292.html
https://github.com/rongfengliang/click-cli-demo
https://packaging.python.org/guides/distributing-packages-using-setuptools/#install-requires
click python cli 开发包的更多相关文章
- vorpal 又一个方便的cli 开发包
vorpal 是一个npm 包,我们可以用来开发专业的cli 程序 简单使用 初始化项目 yarn init -y 添加依赖 yarn add vorpal 简单demo app.js // cons ...
- Python开发包推荐系列之xml、html解析器PyQuery
使用python,喜欢她的简洁是一方面,另外就是它有着丰富的开发包 好用又方便 接下来会给大家推荐一系列很赞的开发包. 在解析html.xml过程中,我们有不少的包可以用.比如bs.lxml.xmlt ...
- SVG开发包, 20 个有用的 SVG 工具,提供更好的图像处理
20 个有用的 SVG 工具,提供更好的图像处理 SVG 现正在 Web 设计领域变得越发流行, 你可以使用 Illustrator 或者 Inkscape 来创建 SVG 图像. 但当进行 Web ...
- .NET 的 WebSocket 开发包比较(转)
.NET 的 WebSocket 开发包比较 编者按 本文出现在第三方产品评论部分中.在这一部分的文章只提供给会员,不允许工具供应商用来以任何方式和形式来促销或宣传产品.请会员报告任何垃圾信息或广告. ...
- *** wechat-php-sdk 微信公众平台php开发包
wechat-php-sdk 微信公众平台php开发包,细化各项接口操作,支持链式调用,欢迎Fork此项目weixin developer SDK. 项目地址:https://github.com/d ...
- 【MediaKit】WPF项目中 调用摄像头拍照的开发包
今天遇到一个 人事的项目,项目中需要调用摄像头给员工照相.如何解决这个问题呢? 介绍一个开发包给你,MediaKit.论坛里头的人都说好,但是黑兔觉得大家好才是真的好.你不妨试试~ 第一步:添加WPF ...
- 我用的一些Node.js开发工具、开发包、框架等总结
开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 2.做些小型项目用Sublime Text. 3.Browser ...
- Node.js开发工具、开发包、框架等总结
开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢.2.做些小型项目用Sublime Text.3.Browserif ...
- 安装python-devel开发包
1.概述 有时在安装某些软件的时候,会报错: Error: must have python development packages -devel, python2.-devel, python2. ...
随机推荐
- Spring工作原理及应用
spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是在运行时 ...
- Linux:Gentoo系统的安装笔记(三)
这期笔记将是gentoo安装的最后一期了,虽然已经配置内核了,但是也要完成剩下的安装步骤,这离安装完成已经不远了,继续加油!!! 如果中断了安装,请看第二期的笔记进行恢复安装,但请重新编译一次内核,否 ...
- bottle模板中的替换
line是模板中一行的内容,类似: {{x}}testinfo{{x+10}} x=10时,模板输出: 10testinfo20 x = 10 splits = re.split(r'\{\{(.*? ...
- springboot +mybatis 搭建完整项目
springboot + mybatis搭建完整项目 1.springboot整合mybatis注解版 转:https://blog.csdn.net/u013187139/article/detai ...
- ES6学习重难点总结(持续更新)
Symbol 1.Symbol.iterator Symbol.iterator指向对象的默认遍历器方法: String.prototype[Symbol.iterator] //ƒ [Symbol. ...
- fabric一些资料网站,长期更新
nodejs的入门教程 http://nqdeng.github.io/7-days-nodejs/#1.2 http://blog.fens.me/series-nodejs/ fabric的知识博 ...
- 新增和编辑clob字段
#region 新的数据新增和修改方法 /// <summary> /// 添加信息 /// </summary> /// <returns></return ...
- python 读取默认配置文件和用户配置文件 configs
优先从configs_default中读取配置,但是configs_override中的配置可以override它 import configs_default #import configs_ove ...
- 【leetcode】461. Hamming Distance
problem 461. Hamming Distance solution1: 根据题意,所求汉明距离指的是两个数字的二进制对应位不同的个数.对应位异或操作为1的累积和. class Solutio ...
- IntelliJ常用快捷键及配置
IntelliJ常用快捷键及配置 目录: 1.常用快捷键: 2.常用配置: 1.常用快捷键: (1)psvm:创建main函数 (2)fori:for (int i = 0; i < ; i++ ...