2014-08-28 71 views
4

我在我的Mac上有installed and configurated AWS Elastic Beanstalk Command Line Tool获取“ImportError:无法导入名称check_output”(EB CLI上的git aws.push)

这就是我已经安装:

$ python --version 
Python 2.7 
$ ruby --version 
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin10.8.0] 
$ eb --version 
AWS Elastic Beanstalk Command Line Interface v2.6.3 

我有EB为了使用git与AWS

正确配置当我试图推动一个致力于AWS我收到此错误:

$ git aws.push 
Traceback (most recent call last): 
    File ".git/AWSDevTools/aws.elasticbeanstalk.push", line 21, in <module> 
    from aws.dev_tools import * 
    File "/Applications/MAMP/htdocs/innbativel/.git/AWSDevTools/aws/dev_tools.py", line 3, in <module> 
    from subprocess import check_output 
ImportError: cannot import name check_output 

有没有人有一个想法为什么以及如何解决它?

+2

不知道为什么* *你得到了错误的'subprocess',但'在版本增加check_output' 2.7,所以大概是某种方式,包括一个2.6或更早版本的'subprocess'。 – torek 2014-08-28 01:48:57

+0

@torek但如何确保它并解决问题? – cawecoy 2014-08-28 02:11:42

+0

请参阅http://stackoverflow.com/questions/247770/retrieving-python-module-path - 在尝试从“子流程导入check_output”部分之前,您可以将代码修改为“导入子流程”,然后查看结果路径。为了解决这个问题,你可能会发现为什么有一个旧的'subprocess',以及它是否可以移动/删除,或者调整'sys.path'等等。这可以回到*为什么*你得到错误的'subprocess'的问题。 – torek 2014-08-28 02:53:12

回答

4

我发现我的OSX自带python 2.6(它没有check_output),它与我为EB CLI安装的python 2.7相冲突。

为了解决这个问题,我只是做了.git/AWSDevTools/aws.elasticbeanstalk.push使用Python 2.7,在其第一行:

#!/usr/bin/env python2.7 
相关问题