2014-03-27 44 views
1

我试图用布料“log_action”方法记载在这里:Python的面料NameError:全局名称“log_action”没有定义

http://docs.fabfile.org/en/1.6/usage/fab.html#per-task-arguments

但是看起来好像是“” log_action”方法一直没有执行。

面料1.8.2,1.12.3的paramiko

from fabric.api import run 
from fabric.api import env 
from fabric.api import sudo 
from fabric.api import sudo, warn_only 

def new_user(username, admin='no', comment="No comment provided"): 
log_action("New User (%s): %s" % (username, comment)) 
pass 

NameError: global name 'log_action' is not defined 
+0

更新的问题 – user1513388

+1

log_action不是一个结构或内置的Python函数。你期望它来自哪里? –

+0

Arr - 我认为这是Fabric提供的功能,因为它是在示例中。 – user1513388

回答

2

继@Andrew Wilkinsons的评论。

文档中有一些混淆。 The chapter实际上是关于将参数传递到结构任务,log_action调用是不相关的,它不是一个真正的函数 - 它只是一个例子,你可以在任务内部做什么。

+0

THanks - 现在有道理! – user1513388

+0

@ user1513388:即使fabric确实定义了“log_action”;你会得到相同的错误,因为你没有导入它,例如,如果你从代码中移除了'from fabric.api import run','run(“true”)'会产生相同的错误。 – jfs

+0

@ J.F.Sebastian好点,spasibo。 – alecxe

相关问题