为什么在尝试运行fab模块时出现语法错误?

时间:2018-09-22 19:22:23

标签: python syntax fabric

我是第一次尝试使用Fabric,并且尝试从他们的文档中运行hello world示例: http://docs.fabfile.org/en/1.14/tutorial.html

我创建了一个名为fabfile.py的本地文件,其中包含以下代码行:

highest = max(ID_dict.values())
print([k for k, v in ID_dict.items() if v == highest])

现在,我尝试在python解释器中运行它:

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

'from fabfile import hello'有效,因此如果我尝试使用垃圾关键字,它必须看到文件和hello函数,因为它出错。但是,然后我尝试使用“ fab function ”语法运行代码,它引发了“无效语法”错误。

能告诉我我做错了什么吗?

编辑: 如果我尝试直接在终端中运行它,也将无法正常工作

> >>> import fabric
> >>> import fabfile
> >>> fab hello   File "<stdin>", line 1
>     fab hello
>             ^ SyntaxError: invalid syntax
> >>> from fabfile import hello

1 个答案:

答案 0 :(得分:0)

第一件事是面料的过时文件

This is an open issue on git.

fabfile.py必须具有正确的装饰器:

from fabric import task

@task
def hello(ctx):
  print("Hello World")

第二次

文档显示fab hello需要在更高级别的shell中执行,就像bash一样。

确保您位于具有结构文件的pwd中。

运行fab hello

这应该看起来像这样:

Twoodys-MacBook-Air:fabQ twoody$ ls
fabfile.py
Twoodys-MacBook-Air:fabQ twoody$ fab hello
Hello World
Twoodys-MacBook-Air:fabQ twoody$