我已經偶然發現了pexpect,我的印象是它看起來大致類似於fabric。我試圖找到一些比較,沒有成功,所以我在這裏問 - 以防有人對這兩種工具有經驗。面料vs pexpect
我的印象(它們大致相當)是正確的,還是它在表面上的外觀?
我已經偶然發現了pexpect,我的印象是它看起來大致類似於fabric。我試圖找到一些比較,沒有成功,所以我在這裏問 - 以防有人對這兩種工具有經驗。面料vs pexpect
我的印象(它們大致相當)是正確的,還是它在表面上的外觀?
我用過兩種。 Fabric比pexpect更高級別,恕我直言更好。這取決於你使用的是什麼,但如果你的使用是軟件的部署和配置,那麼Fabric是正確的選擇。
兩者都有不同的用例。布料所不具備的一點就是保持狀態。每個Fabric api命令(例如:run/sudo)都是它自己的單獨命令。所以,如果你這樣做:
run("cd project_dir && workon project")
run("make")
這將不會在該目錄中,也不會在virtualenv。雖然現在在Fabric中有cd()的上下文管理器,但它們或多或少都會在每次運行前預先配置cd。
在這個事情的計劃中,這對大多數項目的工作方式沒有什麼影響,而且基本上沒有被注意到。但是,對於某些需求,您可以使用pexpect來管理此狀態,多個sudos或某些不能用標誌自動執行的交互式任務。
所有這些雖然不是Fabric的缺點,因爲它只是python,你不僅可以在fabric任務中包含pexpect代碼。
儘管在所有其他方面,Fabric基本上都管理着遠程連接和運行命令的所有艱苦工作,比從頭到尾編寫代碼更好。
更新我被告知,用布和pexepect工作的項目,你可以看到更多關於這個question's answer
您也可以將它們組合起來,能有兩全其美的,面料遠程訪問的支持並提示處理提示。看看這些答案:https://stackoverflow.com/a/10007635/708221和https://stackoverflow.com/a/9614913/708221
我同意喬恩。我曾經使用pexpect,但現在執行這些任務與面料和偶爾http://classespeak.net/execnet/ – 2010-11-17 00:47:28
感謝您的答案! – 2010-11-17 13:22:40
「這取決於你使用的是什麼」,有沒有一個領域可以勝過面料? – osmosis 2012-01-15 02:38:55