4

我正在使用 Fabric 进行项目管理、部署等。我不太了解更方便的运行命令的方式。例如,考虑到我不关心Fabric函数的参数capture和参数,以下哪些是优缺点?shelllocal

os.mkdir(path)

VS

local("mkdir %s" % path)
4

3 回答 3

3

根据您项目的目标,任何一个都可能更合适。这里有一些优点和缺点。

  • python标准库函数的优点
    • 跨平台兼容
    • 通常效率更高,因为没有创建子进程
    • 总体上不太复杂,因为涉及更少的模块、进程、移动部件、shell 解析等(因此也更容易调试)
  • 面料的优点local
    • local更容易在和之间切换runsudo随着项目的变化
    • 更符合runsudo

我认为local可以使用标准库函数轻松表示的简单命令应该只使用标准库作为默认选择来编写,因为它的复杂性较低。逐个案例,我会问自己哪个更有可能:fabfile.py在不同的操作系统上运行这个程序,或者将此命令从本地命令转换为远程命令,然后编码为调用,local如果后者更有可能。

于 2012-11-18T16:33:49.017 回答
1

使用操作系统本机命令意味着您可以将它们作为参数传递给localrun。这更加一致和灵活。

于 2012-11-18T15:58:02.097 回答
1

已经提到了一些优点,但我认为使用local(和朋友)的另一个优点是非 Python 人员可以更容易地看到发生了什么。

于 2012-11-18T18:55:44.993 回答