优质文章,第一时间送达!
作者:豌豆花下猫
来源:Python猫公众号
接着前面的《tox 教程》,以及刚翻译好的《nox文档》,我们继续聊聊 Python 任务自动化的话题。
1、invoke 可以做什么?
invoke 是从著名的远程部署工具 Fabric 中分离出来的,它与 paramiko 一起是 Fabric 的两大最核心的基础组件。
除了作为命令行工具,它专注于“任务执行”(task execution),可以标注和组织任务,并通过 CLI(command-line interface,即命令行界面) 和 shell 命令来执行任务。
同样是任务自动化工具,invoke 与我们之前介绍过的 tox/nox 在侧重点上有所不同:
tox/nox 主要是在打包、测试、持续集成等方面的自动化(当然它们能做的还不止于此)
invoke 则更具普遍性,可以用在任何需要“执行任务”的场景,可以是无相关性的任务组,也可以是有顺序依赖的分步骤的工作流
invoke 在 Github 上有 2.7K star,十分受欢迎,接下来我们看看它如何使用?
2、怎么使用 invoke?
首先,安装很简单:pip install invoke
。
其次,简单使用时有以下要素:
任务文件。创建一个 tasks.py 文件。
@task 装饰器。在一个函数上添加 @task 装饰器,即可将该函数标记为一个任务,接受 invoke 的调度管理。
- 上下文参数。给被装饰的函数添加一个上下文参数(context argument),注意它必须作为第一个参数,而命名按约定可以是
c
或ctx
或context
。 - 命令行执行。在命令行中执行
invoke --list
来查看所有任务,运行invoke xxx
来执行名