我尝试制作 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.
请您参考如下方法:
您可以将 env.warn_only 设置为 True 或使用设置上下文管理器。参见 http://docs.fabfile.org/0.9.3/api/core/context_managers.html?highlight=warn#fabric.context_managers.settings
