Skip to main content
 首页 » 编程设计

python之使用带有命名空间的结构,有没有办法指定每个文件 env.shell

2025年05月04日9tintown

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

结构是

fabfile/ 
    __init__.py 
    dev.py 
    prod.py   

dev.py 和 prod.py 都定义了不同的 env.shell 并且其中一个覆盖了另一个。

有没有办法为 fabric 使用每个文件的 env 配置?

请您参考如下方法:

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

from functools import wraps 
from fabric.api import task as real_task 
 
def task(func): 
    @wraps(func) 
    def wrapper(*args, **kwargs): 
        with settings(shell='/path/to/my/shell'): 
            return func(*args, **kwargs) 
    return real_task(wrapper)

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