Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python导入错误:没有名为Fabric.api的模块?_Python_Fabric_Importerror - Fatal编程技术网

Python导入错误:没有名为Fabric.api的模块?

Python导入错误:没有名为Fabric.api的模块?,python,fabric,importerror,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** 以下是我的作品: import os,pprint from fabric.api import * import time import argparse import C

我得到以下错误:

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

import os,pprint
from fabric.api import *
import time
import argparse
import ConfigParser
我没有一个名为fabric的文件,正如其他解决方案一样,我使用pip安装了fabric,但它仍然不起作用,有什么建议吗? 我正在使用OSX终端

注意:我意识到我安装的结构并没有链接到python安装,即它不承认结构是由pip安装的。 我使用的是osx默认的python版本2.7
如何将fabric安装链接到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 ...

另外,在virtualenv/pyenv中完成所有测试/项目非常好,这样您就不会与当前/未来的项目发生冲突。

我的问题的答案就在这里:

我必须添加我的包的位置(这些包没有安装在sys.path中),所以我必须手动添加它们 使用
pip show
查找包的位置并将它们添加到
.bash\u profile

正如@Javier Buzzi所说的,我将接受建议,并从virtualenv运行我的python代码。

如果您使用基于旧结构版本(即1.x)的fabfile.py,则会出现类似问题。目前fabric的最新版本为2.x,其中:

从2.0发布系列开始,Fabric 2的功能奇偶性不是100% 用1.x!某些功能已被明确删除,但其他功能 只是还没有搬过来

-不再存在:

  • 通过fabric.api导入所有内容
  • 除去
  • 所有有用的导入现在都可以在顶层使用,例如从结构导入连接
建议将fabfile.py从1.x升级到2.x(例如Python 3兼容性-具体来说,我们现在支持2.7和3.4+),但如果您仍然不想升级,可以卸载2.x和,例如

pip卸载结构

pip安装“fabric根据罗伯特·卢乔的回答,你必须将fabric降级到V1,而不是升级到版本3

在做了一些研究之后我发现当你

pip install fabric
它的版本是2.*与Python 3不兼容

相反,简单的解决方案是

pip uninstall fabric
pip install fabric3

这肯定会成功

我不熟悉fabric和python,我还应该发布什么其他信息?我必须从我的计算机在远程服务器上运行我的python代码,我的计算机上安装了python 2.7,我正在使用terminalI did pip安装fabric,它很好,当我运行fab时,它说:致命错误:找不到任何fab文件!请记住,-f可用于指定文件路径,使用-h可获得帮助。正在中止。您是直接运行文件还是使用
fab
?如果你想做
$fab
,你必须有一个fabfile.py。我的意思是粘贴整个源代码。你是如何运作的。请确保从source.com中删除任何机密/密码/密钥。我将添加一个
virtualenv
,并在其中运行您的代码。你可以一直确保你的所有模块都在你安装它的pip中。哇,你是怎么发现fabric2是fabric2并且不兼容的?嘿@Timo你可以做什么来检查任何安装/库的任何版本是-pip show fabric,它会显示pip为它安装的当前版本。
pip install fabric
pip uninstall fabric
pip install fabric3