2

我使用带有命名空间的结构来分隔开发服务器和生产服务器的命令

结构是

工厂文件/
    __init__.py
    开发者.py
    产品.py  

dev.pyprod.py都定义不同env.shell,其中一个覆盖另一个。

有没有办法为env结构使用每个文件配置?

4

1 回答 1

1

我最终像这样覆盖了@task装饰器:

从 functools 导入包装
从 fabric.api 导入任务作为 real_task

定义任务(函数):
    @wraps(函数)
    def 包装器(*args,**kwargs):
        使用设置(shell='/path/to/my/shell'):
            返回函数(*args,**kwargs)
    返回 real_task(包装器)

我不能以这种形式使用 alias 和其他 kwargs,但它适合我。

于 2013-05-27T15:13:41.917 回答