Question

I'm trying to follow this tutorial: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html

in order to deploy a Ruby on Rails app in AWS with Ubuntu.

Everything went ok (I can run my app in local), until the final step. When I run aws.push I get next error.

   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

I have read this post git aws.push: No module named boto and run:

pip install boto
pip freeze > reqIuirements.txt
git add .
git commit -m "Added boto"
git aws.push

But still the same result.

UPDATE: I think the problem is related to my python versions. When I run which python I get /usr/bin/python. If I do ls this folder I see python, python2, python2.7, python3, python3.4.

When I run python I get:

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.
>>> 

I don't know what to do.

The problem was the first boto installation it didn't work due to permissions problems, and I didn't realize. I ran sudo pip install boto and everything went OK this time.

Was it helpful?

Solution 8

See my own comments in the post above.

OTHER TIPS

What happened is that the eb command line interface available in that specific AWS tutorial (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html) does not provide the latest version of boto.

When you did

pip install boto

you installed the latest version from https://github.com/boto/boto which solved the issue.

If on OSX w/o pip installed:

sudo easy_install pip
sudo pip install boto

Make sure when you install Python modules that you look at the output to verify that the install happened properly. On Mac/Linux I had to run sudo to get boto to install properly.

sudo pip install boto

I had face same issue with boto installation on Mac OS High Sierra :

boto required PYTHONPATH to be set in system. First install boto :

sudo pip install boto

After installation it will return path where boto is installed in logs. Use same path to add export as PYTHONPATH

Requirement already satisfied: boto in /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

After adding PYTHONPATH python will able to detect boto module in system.

If you are still having issues after downloading boto, make sure your script is able to reach your site-packages by defining the PYTHONPATH environment variable.

export PYTHONPATH=/usr/local/lib/python2.7/site-packages

Doing these 3 steps helps in cases there are any error with installing pip/python first.

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py 
$ sudo pip install boto

Or if you are on Mac, then you can try installing Python3.

https://www.python.org/ftp/python/3.5.2/python-3.5.2-macosx10.6.pkg then, Install it (UI way if you want to).

$ sudo pip3 install boto

Another option is to run:

python -m pip install --user boto

pip defaults to installing Python packages to a system directory (such as /usr/local/lib/python3.X).
This requires root access.

--user makes pip install packages in your home directory instead, which doesn't require any special privileges. Read more in here.

(*) Make sure you not use pip install --user pkg_name inside a virtual environment. Read more in here.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top