|
|
1
14
我都用过了。 Fabric 比pexpect更高的级别,而且IMHO好多了。这取决于您使用它的目的,但是如果您使用的是软件的部署和配置,那么Fabric是正确的方法。 |
|
|
2
6
您还可以将它们结合起来,以充分利用这两种功能:结构远程处理功能和pexpects对提示的处理。看看这些答案: https://stackoverflow.com/a/10007635/708221 和 https://stackoverflow.com/a/9614913/708221 |
|
|
3
5
两者都有不同的用例。pexpect做的一些事情,织物并没有保存状态。每个Fabric api命令(例如:run/sudo)都是它自己的单独命令。如果你这么做了:
这不会在那个目录中,也不会在virtualenv中。虽然Fabric中现在有cd()的上下文管理器,但它们或多或少都是在每次运行之前准备了一个cd。 在计划中,这与大多数项目的工作方式几乎没有关系,而且基本上没有引起注意。但是,对于某些需要,您可以使用pexpect来管理此状态,对于多个sudo或某种不能用标志自动执行的交互任务。 所有这些对Fabric来说都不是缺点,因为作为唯一的python,您可以在Fabric任务中包含pexpect代码。 尽管在所有其他方面,Fabric本质上比使用pexpect从头开始编写代码更好地管理远程连接和运行命令的所有艰苦工作。 更新 我听说有一个项目是用织物和pexespect设计的,你可以在上面看到更多 question's answer |