Python import error :No module named Fabric.api?
Python import error :No module named Fabric.api?
我收到以下错误:
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 没有 linked 到 python 安装,即它不识别 fabric 是由 pip 安装的。
我正在使用 osx 默认的 python 版本 2.7。
我如何 link 结构安装到 python?
你将不得不更加明确。我创建了一个新的 virtualenv
,安装了 fabric
,一切正常。您需要粘贴更多来源或有关您的环境的更多信息。
$ cd /tmp
$ virtualenv test && source test/bin/activate
$ pip install fabric
...
Successfully installed fabric-1.10.2
$ python
>>> from fabric.api import *
>>>
让我们看看你有什么:
$ python
>>> import pkgutil
>>> [name for _, name, _ in pkgutil.iter_modules()]
... paste THIS output somewhere ...
PS。在 virtualenv/pyenv 中完成所有 tests/projects 真的很好,这样您就不会与 current/future 项目发生冲突。
我的问题的答案就在这里:
PIP install and Python path
我必须添加我的包的位置(安装不在 sys.path)所以我必须手动添加它们
使用 pip show
找到包的位置并将它们添加到 .bash_profile
正如@Javier Buzzi 所说,我会采纳建议以及 运行 来自 virtualenv 的 python 代码。
如果您有 fabfile.py 基于较旧的结构版本,即 1.x,则会发生类似的问题。目前 fabric 最新版本是 2.x 其中 is not backward compatible:
As of the 2.0 release line, Fabric 2 is not at 100% feature parity
with 1.x! Some features have been explicitly dropped, but others
simply have not been ported over yet,
Regarding fabric.api - 它不再存在:
- Import everything via fabric.api
- Removed
- All useful imports are now available at the top level, e.g. from fabric import Connection.
建议将fabfile.py从1.x升级到2.xfor lot of reasons (e.g. Python 3 compatibility - specifically, we now support 2.7 and 3.4+), but if you still don't want to upgrade, you could uninstall 2.x and install 1.x,例如
pip uninstall fabric
pip install 'fabric<2.0'
经过一些研究,我发现当您 pip install fabric
时,它会安装 fabric v2。此版本 introduced“软件几乎完全重新实现和重组”。您的代码是为 fabric v1 编写的,需要重写以与 fabric v2 兼容。
Python 2.7
根据 Robert Lujo 的回答,您可以将 fabric 降级到 v1。
pip install 'fabric<2.0'
Python 3
Fabric v1 与 Python 3 不兼容,因此您可以安装一个名为 fabric3.
的分支
pip uninstall fabric
pip install fabric3
请注意,fabric3 分支已 deprecated by the maintainer, so you should consider making the code updates required to upgrade 到 fabric v2。
我收到以下错误:
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 没有 linked 到 python 安装,即它不识别 fabric 是由 pip 安装的。 我正在使用 osx 默认的 python 版本 2.7。 我如何 link 结构安装到 python?
你将不得不更加明确。我创建了一个新的 virtualenv
,安装了 fabric
,一切正常。您需要粘贴更多来源或有关您的环境的更多信息。
$ cd /tmp
$ virtualenv test && source test/bin/activate
$ pip install fabric
...
Successfully installed fabric-1.10.2
$ python
>>> from fabric.api import *
>>>
让我们看看你有什么:
$ python
>>> import pkgutil
>>> [name for _, name, _ in pkgutil.iter_modules()]
... paste THIS output somewhere ...
PS。在 virtualenv/pyenv 中完成所有 tests/projects 真的很好,这样您就不会与 current/future 项目发生冲突。
我的问题的答案就在这里:
PIP install and Python path
我必须添加我的包的位置(安装不在 sys.path)所以我必须手动添加它们
使用 pip show
找到包的位置并将它们添加到 .bash_profile
正如@Javier Buzzi 所说,我会采纳建议以及 运行 来自 virtualenv 的 python 代码。
如果您有 fabfile.py 基于较旧的结构版本,即 1.x,则会发生类似的问题。目前 fabric 最新版本是 2.x 其中 is not backward compatible:
As of the 2.0 release line, Fabric 2 is not at 100% feature parity with 1.x! Some features have been explicitly dropped, but others simply have not been ported over yet,
Regarding fabric.api - 它不再存在:
- Import everything via fabric.api
- Removed
- All useful imports are now available at the top level, e.g. from fabric import Connection.
建议将fabfile.py从1.x升级到2.xfor lot of reasons (e.g. Python 3 compatibility - specifically, we now support 2.7 and 3.4+), but if you still don't want to upgrade, you could uninstall 2.x and install 1.x,例如
pip uninstall fabric
pip install 'fabric<2.0'
经过一些研究,我发现当您 pip install fabric
时,它会安装 fabric v2。此版本 introduced“软件几乎完全重新实现和重组”。您的代码是为 fabric v1 编写的,需要重写以与 fabric v2 兼容。
Python 2.7
根据 Robert Lujo 的回答,您可以将 fabric 降级到 v1。
pip install 'fabric<2.0'
Python 3
Fabric v1 与 Python 3 不兼容,因此您可以安装一个名为 fabric3.
的分支pip uninstall fabric
pip install fabric3
请注意,fabric3 分支已 deprecated by the maintainer, so you should consider making the code updates required to upgrade 到 fabric v2。