Skip to main content
 首页 » 编程设计

python之构造方法异常

2025年05月04日9lonelyxmas

我尝试制作 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