使用warn_only和"运行"和" sudo"没关系。但是使用" local",它会产生以下错误:
TypeError: local() got an unexpected keyword argument 'warn_only'
我应该使用env.warn_only = True吗?
答案 0 :(得分:1)
不,这就是你忘记的那种东西然后来叮咬你的屁股。如果你完全避免访问env
,那么至少在你还熟悉面料时会很棒。相反,我谦卑地建议你使用with setting(warn_only=True)
那样你只是暂时覆盖它。
@task
@setting(warn_only=True)
def task_that_always_throws_warning():
local('sudo ....')
local('sudo ....') # if this throws an error you will NOT know about it
@task
def task_that_always_throws_warning_but_i_need_to_catch_the_second_local():
with setting(warn_only=True):
local('sudo ....')
local('sudo ....') # if this throws an error you will know about it
你也可以这样做,(虽然我不推荐):
env.warn_only=True
@task
def task_that_always_throws_warning_but_i_need_to_catch_the_second_local():
local('sudo ....')
with setting(warn_only=False):
local('sudo ....') # if this throws an error you will know about it
最重要的是,你可以随心所欲地做到这一点," im"一个不能覆盖系统默认值的忠实粉丝。