获取“ImportError: cannot import name check_output”(EB CLI上的git aws.push)

5 投票
1 回答
8649 浏览
提问于 2025-04-18 18:48

我在我的Mac上安装并配置了AWS Elastic Beanstalk命令行工具

这是我安装的内容:

$ 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

有没有人知道为什么会这样,以及怎么解决这个问题?

1 个回答

5

我发现我的Mac系统自带的是python 2.6(这个版本没有check_output这个功能),而我安装的python 2.7和它发生了冲突,这个版本是为了使用EB CLI。

为了解决这个问题,我在.git/AWSDevTools/aws.elasticbeanstalk.push文件的第一行指定使用python 2.7:

#!/usr/bin/env python2.7

撰写回答