當前位置:
首頁 > 最新 > Fabric3:Fabric的Python3支持版

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 的精彩文章:

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

TAG:Python |