Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

275
Views
Elastic Beanstalk installing scipy

I'm trying to install scipy on a bare-bones Django app running on Amazon Elastic Beanstalk, but I can't get it to work.

Here are the steps to reproduce my problem:

The regular stuff from the guide:

# Create a new virtual environment
mkvirtualenv -p python2.7 django_eb

# Install Django on it
pip install django==1.9.12
# pip freeze should now show Django==1.9.12 and some other things

# Start a new Django project 
# This creates a directory that has everything you need for Django
django-admin startproject django_eb
cd django_eb

# Optionally check that the site works
python manage.py runserver
Ctrl-C

# Store the pip requirements so that the remote host can install them
pip freeze > requirements.txt

# Tell the remote server where our wsgi file is
mkdir .ebextensions
cat <<EOT >> .ebextensions/django.config
option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: django_eb/wsgi.py
EOT

# Allow any host for our project
# If this is unset, you'll get a 404 on the deployed site
set ALLOWED_HOSTS = ['*'] in settings.py

# Create an EB project
# Will need AWS EB CLI for this
eb init -p python2.7 django_eb
# Choose some region
eb init
# choose Y so we can SSH and check logs

# Create a deployment environment
eb create django-eb-env 
# This step takes around 5 minutes
# If it fails and you need to restart run 'eb deploy'

# Open the website in your OS's default browser
eb open
# If you get DisallowedHost at / error
# double check that ALLOWED_HOSTS = ['*']

Installing scipy:

# Now we'll install scipy and watch how it doesn't work remotely
pip install scipy==0.19.0
pip freeze > requirements.txt
eb deploy
# Should take forever and then finally print 
# 'ERROR: Failed to deploy application.'

eb ssh
cat /var/log/eb-activity.log
# Should print
# numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

# After reading this blog post
# https://medium.com/@DaveJMcKeown/deploying-scipy-into-aws-elastic-beanstalk-2e5e481155de
# I added this to .ebextensions/django.config:
packages:  
  yum:
    make: []
    gcc-c++: []
    gcc-gfortran: []
    python27-devel: [] # I used python27-devel instead of python-devel
    atlas-sse3-devel: []
    lapack-devel: []
    libpng-devel: []
    freetype-devel: []
    zlib-devel: []
container_commands:  
  AddGlobalWSGIGroupAccess: 
    command: "if ! grep -q 'WSGIApplicationGroup %{GLOBAL}' ../wsgi.conf ; then echo 'WSGIApplicationGroup %{GLOBAL}' >> ../wsgi.conf; fi;"

# Unfortunately, this leads to an our of memory error
# Running dmesg now looks like the following:
# http://stackoverflow.com/a/35011967/2770572

I'm at a loss here. It seems like I could maybe get this to work on an EC2 instance with more RAM, but I can't really do that because it'll take me out of the free tier. Is there a way to run the make command so that it doesn't take up so much memory or some other solution?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

You can try to add this to your .ebextensions/django.config:

commands:
  01_no_cache:
    command: "/opt/python/run/venv/bin/pip install --no-cache-dir -r /opt/python/current/app/requirements.txt"

If you inspect /var/log/eb-activity.log (or just type eb logs if you have the EB CLI installed), you can see the error here:

MemoryError
2017-08-10 11:40:25,557 ERROR    Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 2

As far I can see, you can provide your EB with specific commands if you include them inside the django.config. As written here, you can disable the cache.

This has worked for me.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!