导入错误fabric.api

导入错误fabric.api

我正在尝试导入fabric.api并遇到问题。我使用 pip 安装了 Fabric,当我import fabric在解释器中运行时它工作正常。

但是当我from fabric.api import *这样做时,它会抛出一个错误,提示“没有名为 api 的模块”。我正在使用Python 2.7。我在这里缺少什么?

Python 2.7.10 (default, Oct  6 2017, 22:29:07)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> version
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'version' is not defined
>>> import fabric
>>> import fabric.api
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named api
>>> from "fabric.api" import *
  File "<stdin>", line 1
    from "fabric.api" import *
                    ^

答案1

Fabric从 v1 到 v2 进行了一些主要的 API 更改;要查看更改,请访问从 Fabric 1.x 升级:API 组织。特别是,fabric.api被删除,所有内容都直接从顶级包导入。这意味着您的脚本不适用于当前Fabric==2.0.1版本;您有两种可能性:重写代码以兼容 v2,或安装最新的 v1 版本:

$ pip install "fabric<2"

答案2

fabric.api是版本的一部分

1.14

你安装了

2.4

请检查版本

答案3

对于那些仍在努力应对变化或拥有一长串基于 Fabric<2 的工具但想要迁移到 python 3 的人,您可以使用

pip install fabric3

获得与 python 3 兼容并使用 Fabric<2 的工作版本。

相关内容