我使用带有命名空间的结构来分隔开发服务器和生产服务器的命令
结构是
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,但它适合我。
关于python - 使用带有命名空间的结构,有没有办法指定每个文件 env.shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773454/