安装

备注

希望安装Fabric1.x的用户应该看到 安装(1.x) . 然而, upgrading 强烈建议使用2.x。

最好通过以下方式安装交换矩阵 pip **

$ pip install fabric

所有先进 pip 用例也可以工作,例如:

$ pip install -e git+https://github.com/fabric/fabric

或者克隆Git存储库并运行:

$ pip install -e .

在它里面。

您的操作系统也可能有一个结构包可用(尽管这些包通常较旧,而且难以支持),通常称为 fabricpython-fabric . 例如。::

$ sudo apt-get install fabric

安装现代 Fabric 组件 fabric2

从Fabric1迁移到Fabric2+的用户可能会发现并行安装这两个版本很有用。最简单的方法是使用 fabric2 PIPPI条目:

$ pip install fabric2

此上载是从普通结构存储库生成的,但在构建时进行了调整,以便安装 fabric2 包而不是 fabric 一个(和一个) fab2 二进制而不是 fab 代码库在其他方面是不变的。

使用git存储库的用户可以使用环境变量启用相同的调整,例如:

$ PACKAGE_AS_FABRIC2=yes pip install -e .

备注

环境变量的值并不重要,只要它不是空的。

fabric and fabric2 vs fabric3

不幸的是, fabric3 pypi上的条目是未经授权的fabric 1.x分支,我们无法控制。一旦现代 Fabric 达到3.x、4.x等,我们很可能会继续通过这两种方式进行分销。 fabricfabric2 为了方便,不会有任何官员 fabric3fabric4 等。

换言之, fabric2 纯粹是为了帮助1.x的用户跨越2.0“主要重写”的障碍;未来的主要版本将 不会 进行大的重写,只会有小的向后不兼容集。

无法使用 pip install -e 安装两个版本

如果 both 结构版本通过安装 pip install -e ,因为该功能是如何工作的(tl;dr它只是将签出目录添加到 sys.path ,无论您是否要“安装”其中的所有软件包—所以Fabric2+。 fabric/ 软件包最终仍然对导入系统可见 fabric2/

因此,一次只能以“可编辑”方式安装一个结构的本地副本,另一个副本必须通过 pip install (不) -e )如果需要对其进行编辑。

安装顺序

由于上述相同的pip-quirk,如果在“可编辑”模式下安装了任何一个结构版本,则 must 首先安装“可编辑”版本,然后安装“静态”版本。

例如,如果您要从Fabric1的某个公开发布迁移到现代Fabric的签出:

$ PACKAGE_AS_FABRIC2=yes pip install -e /path/to/fabric2
$ pip install fabric==1.14.0

你可能会在那一秒看到一些警告 pip install (如 Not uninstalling fabricCan't uninstall 'fabric' )但只要它干净地离开并且说 Successfully installed fabric-1.14.0 你应该没事的。与例如 pip list 你应该有两个条目 fabricfabric2 .

依赖关系

为了使Fabric安装成功,您需要以下内容:

  • python编程语言,版本2.7或3.4+;

  • 这个 Invoke 命令运行和任务执行库;

  • 以及 Paramiko SSH库(以及它自己的依赖项;请参见 its install docs 。)

开发依赖项

如果您对在Fabric上进行开发工作(甚至只是运行测试套件)感兴趣,则需要 dev-requirements.txt (包括在源代码分发中)通常很容易 pip install -r dev-requirements.txt .

下载

要获取结构源代码的tar.gz或zip存档,您可以访问 Fabric's PyPI page 它除了作为入口点外还提供手动下载 pip .

源代码签出

结构开发人员使用 Git DVCS。要通过Git跟踪Fabric的开发,而不是下载正式版本,您可以选择以下选项:

备注

如果您通过源代码管理获得了结构源,并计划在将来更新您的签出,我们强烈建议使用 pip install -e . (或) python setup.py develop )相反--它将使用符号链接而不是文件副本,确保库的导入或命令行工具的使用始终指向您的签出。

有关 Fabric 开发的方式和原因的信息,包括哪些分支机构可能感兴趣,以及如何提供帮助,请参阅 开发 页。