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

标签 python fabric

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

结构是

fabfile/
    __init__.py
    dev.py
    prod.py  

dev.pyprod.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/

相关文章:

git - git 中开发分支和生产分支之间的差异存储在哪里?

python - Fabric python安装问题

python3模块导入/命名困境

python - 优化两个 SQL 查询和一个列表理解

python - 使用 Pandas 数据框中的部分数据滚动标准差

python - 如何使用 Fabric 通过代理建立 SSH 连接?

pip - Oracle Linux 6.5 上的 Fabric 失败并显示 "pkg_resources.DistributionNotFound: paramiko>=1.10"

python - 尝试在 django 中读取文本文件

python - Azure 存储表返回空实体

python - 安装pycrypto时出错