现在,您可以执行我的操作,这很麻烦,但是效果很好*(此用法假设您正在使用virtualenvwrapper-应该如此-
但您可以轻松地替换为您提到的更长的“源”调用, 如果不):
def task(): workon = 'workon myvenv && ' run(workon + 'git pull') run(workon + 'do other stuff, etc')
从1.0版开始,Fabric具有使用此技术的
prefix上下文管理器,因此您可以例如:
def task(): with prefix('workon myvenv'): run('git pull') run('do other stuff, etc')*在某些情况下,使用该
command1 && command2方法可能会给您带来麻烦,例如
command1失败(
command2永远不会运行)或
command1无法正确转义并且包含特殊的shell字符等。



