面料返回127与"来源"命令

时间:2015-12-30 02:08:02

标签: python fabric

我无法弄清楚为什么会这样......

在我的面料文件中,我有这个......

def func():
    local("source ../venv/bin/activate")

它在源命令上返回127并且我不确定为什么,当我尝试在我的终端中手动运行源时它可以工作。当我在结构中尝试不同的命令时,比如......

local("echo 'foo'")

它也有效。为什么来源会造成问题?我无法理解为什么会发生这种情况。

1 个答案:

答案 0 :(得分:4)

source未知

sh。如果要在虚拟环境的上下文中运行命令,请使用Fabric的上下文管理器并运行不带源的activate二进制文件。我改编自this answer

from __future__ import with_statement
from fabric.api import *
from contextlib import contextmanager as _contextmanager

env.activate = '. ./.env/bin/activate'

@_contextmanager
def virtualenv():
    with prefix(env.activate):
        yield

def deploy():
    with virtualenv():
        local('echo hello world!')