Fabric 方法异常

2 投票
1 回答
1831 浏览
提问于 2025-04-16 12:00

我在尝试写一个Fabric函数,用来检查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.

1 个回答

1

你可以把 env.warn_only 设置为 True,或者使用设置上下文管理器。具体可以查看这个链接:http://docs.fabfile.org/0.9.3/api/core/context_managers.html?highlight=warn#fabric.context_managers.settings

撰写回答