我尝试制作Fabric func,它会检查Apache是否已安装:
from fabric.api import *
def check_apache():
try:
result = local('httpd -v', capture=True)
except:
print "check_apache exception"
但是如果没有安装httpd,我会得到:
$ fab check_apache
Fatal error: local() encountered an error (return code 127) while executing 'ahttpd -v'
Aborting.
check_apache exception
Done.
如何为Fabric local()
方法获取正确的异常?所以我需要获得异常并继续执行而不会出现任何Fabric错误消息:
$ fab check_apache
check_apache exception
Done.
答案 0 :(得分:1)
您可以将env.warn_only
设置为True
或使用设置上下文管理器。见http://docs.fabfile.org/0.9.3/api/core/context_managers.html?highlight=warn#fabric.context_managers.settings