AWS aws.push 导入错误:在Ubuntu中没有名为boto的模块
我正在按照这个教程进行操作: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html
目的是在AWS上用Ubuntu部署一个Ruby on Rails应用。
一切都很顺利(我可以在本地运行我的应用),直到最后一步。当我运行aws.push时,出现了下面的错误。
roberto@ubuntu:~/dev/myapp$ git aws.push
Traceback (most recent call last):
File ".git/AWSDevTools/aws.elasticbeanstalk.push", line 21, in <module>
from aws.dev_tools import *
File "/home/roberto/dev/myapp/.git/AWSDevTools/aws/dev_tools.py", line 5, in <module>
import boto
ImportError: No module named boto
我看过这篇帖子 git aws.push: No module named boto,并且执行了:
pip install boto
pip freeze > reqIuirements.txt
git add .
git commit -m "Added boto"
git aws.push
但结果还是一样。
更新:
我觉得问题可能和我的Python版本有关。
当我运行 which python
时,得到的结果是 /usr/bin/python。如果我查看这个文件夹,看到有python、python2、python2.7、python3、python3.4。
当我运行 python
时,得到:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
我不知道该怎么办。
问题出在第一次安装boto时,由于权限问题没有成功,我没有意识到。我运行了 sudo pip install boto
,这次一切都正常了。
8 个回答
我在Mac OS High Sierra上安装boto
时也遇到了同样的问题:
boto
需要在系统中设置PYTHONPATH
。
首先安装boto
:
sudo pip install boto
安装完成后,日志中会返回boto
安装的路径。记下这个路径,用来设置PYTHONPATH
。
已经满足要求:
boto
在/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (2.48.0)中。
export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
添加了PYTHONPATH
后,Python就能在系统中找到boto
模块了。
安装Python模块的时候,一定要注意查看安装过程中的输出信息,确认安装是否成功。在Mac或Linux系统上,我需要使用sudo命令才能正确安装boto这个模块。
sudo pip install boto
如果你在没有安装pip的OSX系统上:
sudo easy_install pip
sudo pip install boto
发生的事情是,在那个特定的AWS教程中,使用的eb命令行工具(可以在这里找到:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html)没有提供最新版本的boto。
当你执行了
pip install boto
这条命令时,你从https://github.com/boto/boto安装了最新版本,这就解决了问题。
请查看我在上面帖子中的评论。