2014-03-27 93 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

相關問題