我有一个通常在远程计算机上运行的结构代码,但有时在本地运行它会很有帮助。
我找到了两种方法来实现这个目标:
方法#1:仅使用'运行'命令(避免使用本地)并设置ssh密钥以在同一台机器上用于本机,就像你想要自己ssh一样。
方法#2:
from fabric.api import local
from fabric.api import run as run_
def is_local():
return len(env.hosts) == 0 or env.hosts == ['localhost']
def run(cmd, curr_dir=None):
if is_local():
if curr_dir:
with cd(curr_dir):
return local(cmd, capture=True)
else:
return local(cmd, capture=True)
else:
if curr_dir:
with cd(curr_dir):
return run_(cmd)
else:
return run_(cmd)
这限制了我以防我想使用一些操作,如quiet()... 您认为能够远程或本地运行相同代码的最佳解决方案是什么? 也许还有一个我不知道的额外技巧。