Fabric3:Fabric的Python3支持版
Fabric3是一個用來簡化SSH使用的Python庫和命令行工具,它支持Python2.7和Python3.4+,你可以用它自動化完成應用部署或者其他系統管理任務。這是原Fabric項目的一個Fork分支,並增加了Python3的支持,同時沒有破壞Python2.7的支持。下面我們會介紹這個項目和原Fabric項目的區別。
如果你想從原Fabric項目切換到這個項目,這樣做就可以了:
不要忘記對應地升級你的requirements.txt文件:
這個庫提供了執行本地或遠程任務的很多基本操作、上傳下載文件的功能和一些輔助功能,比如input操作,暫停任務等待用戶輸入內容。
通常的使用方法就是創建一個Python模塊,裡面寫一些任務函數,然後通過fab命令運行。下面是一個只包含一個任務的小例子:
把上面內容保存為文件 fabfile.py(這是fab命令默認使用的Python模塊),你可以在一個或者多個伺服器上運行fabfile.py中定義的命令。像這樣:
除了使用命令行工具fab。Fabric3還可以作為庫,被其他Python代碼所使用,這樣它就為SSH的使用提供了一個高層介面,在這裡,Fabric3在底層使用了庫Paramiko。
和原Fabric的區別
總體來說這個項目希望跟原Fabric提供一模一樣的介面和功能,並且會定期從原項目merge新修改到當前項目。下面是它們之間僅有的一點差別:
1、項目名稱叫Fabric3,多了一個數字3。雖然叫3,但它同時支持Python2.7和Python3.4+。
2、版本號和原項目也保持一致,只不過後面增加一個postX標識。所以1.12.0.post1和原項目的1.12.0是等價的。
3、fabric.utils.RingBuffer被移除了,使用標準庫的collections.deque來代替它。
4、在Python3版本中,Fabric3基於contextlib.ExitStack構建了它自己的contextlib.nested函數,所以contextlib.ExitStack已經不存在了。我們這樣做是有很好的理由的,我們也不推薦你使用它。
5、Fabric3依賴six來做Python2和3的兼容。
6、對於paramiko的依賴,需要版本1.17.0以上。
英文原文:https://github.com/mathiasertl/fabric/
譯者:詩書塞外


※Python編程培訓中你遇到捷da徑keng了嗎?來千鋒讓你不中招!
※Python 從Zero到Hero(一)
TAG:Python |