Python导入错误:No module named Fabric. api?

标签 python fabric importerror

我收到以下错误:

Traceback (most recent call last):
  File "drayd.py", line 2, in <module>
    from fabric.api import *
**ImportError: No module named fabric.api**

我正在使用以下方式运行我的程序:

python drayd.py

这些是我的进口:

import os,pprint
from fabric.api import *
import time
import argparse
import ConfigParser

我没有其他答案建议的名为 fabric 的文件。我使用 pip 安装了 fabric 但它仍然不起作用,有什么建议吗? 我正在使用 OSX 终端。

注意:我意识到我安装的 fabric 没有链接到 python 安装,即它无法识别 fabric 是由 pip 安装的。 我正在使用 osx 默认的 python 版本 2.7。 如何将结构安装链接到 python?

最佳答案

经过一些研究后,我发现当您pip install fabric 时,它会安装 fabric v2。本版introduced “软件几乎完全重新实现和重组”。您的代码是为 fabric v1 编写的,需要重写以与 fabric v2 兼容。

python 2.7

根据 Robert Lujo 的回答,您可以将结构降级到 v1。

pip install 'fabric<2.0'

python 3

Fabric v1 与 Python 3 不兼容,因此您可以安装一个名为 fabric3 的分支。 .

pip uninstall fabric
pip install fabric3

请注意,fabric3 分支已被 deprecated由维护者提供,因此您应该考虑对 upgrade 进行所需的代码更新结构 v2。

关于Python导入错误:No module named Fabric. api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148831/

相关文章:

python - 陈旧元素引用 : element is not attached to the page document with the chrome web driver

Python/Fabric 的误解

python - ImportError:适用于 osx,不适用于 ubuntu

python - 没有名为 'sage.all' 的模块

python - Django DST 时间更改问题与 django datetimefield

python - Django:选择列的总和等于某个常数的位置

python - 使用 Fabric 处理故障

python - 如何告诉 Fabric 当前站点的角色是什么?

java - 从 Java 调用 Python 脚本时出现 Python ImportError

python解压缓冲区数据