Fabric 2使用全局设置

问题描述 投票:0回答:1

在Fabric1中,可以将一堆设置放入fabfile.py,并从另一个包中导入实际任务。因为我正在将这些任务用于多个项目,所以这是需要的。

例如:

from fabric.api import env

env.django_dir = '/home/someuser/django_app'
env.git_repo = 'some url'

然后任何结构代码都可以像这样访问变量:

from fabric.api import env

def clone():
    with cd('$HOME'):
        run('git clone {repo} {django_dir}'.format(
            repo=env.git_repo, django_dir=env.django_dir))

然而,似乎从fabric2不再有env这样的东西。如何从另一个包中获取任务以使用fabfile.py中的配置设置?

python fabric python-fabric-2
1个回答
0
投票

在进一步研究了文档之后,我发现:a configuration page引用了Invoke。

事实证明,所有需要做的就是在fabfile.py旁边创建一个名为fabric.py的新文件。

fabric.py中声明您的变量。]​​>

django_dir = 'django_app'
git_repo = 'some url'

在任务中,您可以通过与c.config交谈来访问此信息

def clone(c):
    # with isn't implemented yet, chain with &&
    c.run('cd $HOME && git clone {} {}'.format(
        c.config.git_repo, c.config.django_dir))
© www.soinside.com 2019 - 2024. All rights reserved.