微信号:pythonbuluo

介绍:最专业的Python社区,有每日推送,免费电子书,真人辅导,资源下载,各类工具.我已委托“维权骑士”(rightknights.com)为我的文章进行维权行动

Fabric3:Fabric的Python3支持版

2018-02-11 08:10 Python程序员

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程序员 更多文章 Delorean:让时间处理更容易 为什么Python是初学者的完美选择? 计算时间的20个常用代码段 网站培训今日9折,机不可失 Python async\/await 介绍
猜您喜欢 老司机们闭门讨论微服务框架,到底啥内容?(内有彩蛋) 华为沙龙报名通道 PyTips 0x0a - 字符串的格式化 (84) 反射 \/ 计算机程序的思维逻辑 PHP7 RC7发布