4

我正在阅读有关Fabric Namespaces的基本教程。

我希望做一些类似于Structuring a fabric project with namespaces

我的__init__.py文件看起来:

from fabric.api import task

@task
def abc():
   pass

当我运行时,fab --list我收到此错误:

me@galvatron:/tmp/fabric_test$ fab --list

Fatal error: Couldn't find any fabfiles!

Remember that -f can be used to specify fabfile path, and use -h for help.

Aborting.

谁能告诉我我错过了什么或做错了什么?

4

4 回答 4

4

根据文档,该文件夹仍需要命名为 fabfile ,除非您指定:

$ fab -f myfolder -l
于 2012-05-29T22:08:38.277 回答
2

我有同样的问题。我按照文档http://docs.fabfile.org/en/1.8/usage/fabfiles.html#fabfile-discovery构建了一个名为的模块fabfile,并在其中放置了不同的 fabfile,但是当我尝试运行时,fab -l我得到了一个错误Fatal error: Fabfile didn't contain any commands!

为了解决这个问题,我必须将所有 fabfiles 导入fabfile/__init__.py,如下所示:

from myfab_1 import *
from other_fab import *
from other_tasks import *

在此之后,我可以做fab -l并获得所有文件中所有任务的列表。呼叫fab some_task也开始工作。

于 2013-11-21T08:40:46.813 回答
0

我也只是在玩织物,而且文档很薄。

为了让织物在没有 -f 的情况下使用新功能,您需要在一个名为 fabfile.py 的文件中定义它们,因此尝试将您的功能放入该文件中,删除所有其他文件,然后“fab abc”应该会很好用!

于 2013-02-25T18:47:47.970 回答
0

如果你想执行除 fabfile 以外的任何其他名称的文件,例如:filename.py

我的 filename.py 包含内容:

def hello():
    print ("Hello world")

你必须像这样执行命令: fab -f pathToFile methodnameInside.

例子:fab -f filename.py hello

于 2017-11-01T05:04:11.307 回答