Python Invoke - 找不到任何名为'tasks'的集合!

时间:2015-08-18 16:47:44

标签: python python-3.x python-2.7 invoke pyinvoke

我开始了 Python Invoke

from invoke import task

@task
def build():
    print("Building!")

预期输出

$ invoke build
Building!

但是,我的输出是

$ invoke build
Can't find any collection named 'tasks'!

我不知道为什么。

令人惊奇的是,一旦我在virtualenv中调用,那么我可以在没有virtualenv的情况下构建。

> mkvirtualenv myenv
> invoke build
Building!
> deactivate myenv
> invoke build
Building!

我错过了什么吗?

2 个答案:

答案 0 :(得分:9)

根据文档,包含任务的文件应命名为tasks.py。确保从与tasks.py相同的目录运行构建

答案 1 :(得分:1)

您还可以将tasks.py重命名为您选择的名称,并可以使用'-c'选项运行它。

下面假设您的简单py文件名为'invoke_testing.py'

from invoke import task

@task
def check_config_files(c):
    print("Hey I am Checking configurations")

您需要像这样通过命令行运行:例如,列出可用的任务

invoke -c invoke_testing --lists

输出:

Available tasks:
  check-config-files

p.s。函数名称中的'_'已替换为'-' 并且如果您需要运行特定任务,则必须使用列表中列出的名称来运行它。

invoke -c invoke_testing check-config-files

我从此来源Python Invoke那里获得了此参考

让我知道是否有人对此有更多信息。