快速构建CLI程序并发布到PyPi
2021-09-07 22:56
776 查看
构造一个简单的CLI程序
typer
这个从去年就被各种营销号吹成Web框架的 第三方库, 与 FastAPI 同出一人之手,它不是Web框架,它是一个用来构建CLI程序的库,我们就简单搞个例子
# 更多用法,看文档 import typer # 实例一下 app = typer.Typer() # 加到命令组中 hello @app.command() def hello(name: str): typer.echo(f"Hello {name}") # 加到命令组中 goodbye 接收 一个必要参数name, --formal 可修改默认值参数 @app.command() def goodbye(name: str, formal: bool = False): if formal: typer.echo(f"Goodbye Ms. {name}. Have a good day.") else: typer.echo(f"Bye {name}!")
poetry
依赖环境和包管理器,个人觉得最大的亮点就是可以直接打包发布到PyPi上
pip install poetry 进行安装
# 常用命令 1. 在已有项目中初始化(图方便就一直回车): poetry init 2. 完全初始化一个项目: poetry new 项目名 # 上述内容 一路回车之后 得到一个pyproject.toml文件 3. 添加依赖库并安装: poetry add typer ... 其他命令 ... 各位自己翻文档吧
正片开始
-
新建一个目录
tclidemo
-
poetry init
一路回车 -
poetry add typer
安装typer -
目录下新建一个同名的包(也可不同名)
56c -
在
包
里面新建一个main.py
内容就是上面typer
中的内容 -
pyproject.toml
添加[tool.poetry.scripts]
后如下[tool.poetry] # 这个name 必须和 我们要打包那个目录一个名称,且不能和pypi(曾经有和现在有的包)重名 # https://pypi.org/help/#file-name-reuse name = "tclidemo" version = "0.1.4" # 包版本号 安装时 最好指定版本安装 pip install xx==0.1.2 description = "" authors = ["zy7y <xxxxxxx@163.com>"] [tool.poetry.dependencies] python = "^3.9" typer = "^0.4.0" [tool.poetry.dev-dependencies] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] # 前面是命令 开头 , = 后面是 指定typer实例, 对应的就是 打包包名.模块名(main.py文件).typer对象名 tdo = 'tclidemo.main:app'
-
打包&上传pypi
PyPI · The Python Package Index
# 执行后在当前目录下生成一个dist目录,poetry 和 npm 命令还差不多.... poetry build (venv) E:\coding\tree-cli>poetry build Building tclidemo (0.1.4) - Building sdist - Built tclidemo-0.1.4.tar.gz - Building 56c wheel - Built tclidemo-0.1.4-py3-none-any.whl # 上传 poetry publish # 之后会要求输入 pypi 的账号密码(没有的先去注册 https://pypi.org/) (venv) E:\coding\tree-cli>poetry publish Username: zy7y Password: Publishing tclidemo (0.1.4) to PyPI - Uploading tclidemo-0.1.4-py3-none-any.whl 0% - Uploading tclidemo-0.1.4-py3-none-any.whl 100% - Uploading tclidemo-0.1.4-py3-none-any.whl 100% - Uploading tclidemo-0.1.4.tar.gz 0% - Uploading tclidemo-0.1.4.tar.gz 100% - Uploading tclidemo-0.1.4.tar.gz 100%
-
如果没报错,那就稳了,新起个虚拟环境
python -m venv venv
# 安装上传的包 , 如果确实上传了装不上 最好等个一分钟哦 pip install tclidemo==0.1.4 # 执行tdo --help tdo --help
(venv) C:\Users\win10\Desktop\apiAutoTest>tdo --help Usage: tdo [OPTIONS] COMMAND [ARGS]... Options: --install-completion [bash|zsh|fish|powershell|pwsh] Install completion for the specified shell. --show-completion [bash|zsh|fish|powershell|pwsh] Show completion for the specified shell, to copy it or customize the installation. --help 1589 Show this message and exit. Commands: goodbye hello
最后
两个库官方文档如下,更多用法等你发掘。 可以试试 pip install tclidemo==0.1.4 哦
https://typer.tiangolo.com/ # typer https://python-poetry.org/docs/ # poetry
参考文档:https://click-docs-zh-cn.readthedocs.io/zh/latest/setuptools.html
相关文章推荐
- OSG学习笔记14-快速构建视图的窗口设备(OSG程序在窗口中显示)
- 快速构建Windows 8风格应用37-常见发布注意事项
- 怎么快速搞定 .NET Core 程序的跨平台独立发布
- 详解vue-cli快速构建vue应用并实现webpack打包
- Reactjs-generator-cli 一款基于Ink构建用于快速搭建React应用的CLI scaffolding工具
- jenkins自动构建发布程序
- 如何快速开发CLI程序
- vue-cli 快速构建vue应用,webpack打包
- vue项目的快速构建工具 cli 【 脚手架 】
- dSYM-如何获取dSYM UUID并快速定位到已发布程序的crash位置(二)
- 使用vue-cli 快速构建自己的vue模板
- 发布一款基于silverFoxServer构建的一套象棋联机对战程序!
- vue-cli如何快速构建vue项目
- 详解基于vue-cli3快速发布一个fullpage组件
- 使用React-route和Webpack快速构建一个react程序
- 关于spring boot - 快速构建spring程序
- 快速构建Windows 8风格应用36-商店应用发布流程
- spring-boot-plusV1.2.3发布,CentOS快速安装环境/构建/部署/启动项目
- 基于Bluemix快速构建部署一款Java小程序——微博影响力分析器
- Vue.js:使用vue-cli快速构建项目