首页 > 解决方案 > 来自其他 python 脚本的 PyInvoke 执行任务

问题描述

我正在阅读pyinvoke 文档,并且正在寻找从其他 python 脚本执行调用任务的任何简单方法。任务没有方法运行,所以我无法导入它们,只需 .run()。我发现有Executor 类,但我知道我需要先声明任务集合,然后我可以从脚本运行其中一个任务。也许还有另一种方法可以从其他不是任务的python脚本中最简单地做到这一点?

标签: pythonpython-3.xpyinvoke

解决方案


重点是“任务也是一个python函数”,所以你可以通过调用任务函数来调用任务,如下所示:

test在 中定义任务函数a.py

#a.py
from invoke import task
@task
def test(c):
    print("hello, I'm a-test!")

通过调用函数导入模块a并执行任务。a.test()

#tasks.py
from invoke import task
import a
@task
def executeatest(c):
    print('executing [a-test] task defined in "a.py"')
    a.test(c)

当你执行inv executeatest时,它的结果是:

executing [a-test] task defined in "a.py"
hello, I'm a-test!

推荐阅读