Ich versuche scipy auf einer blanken Django App zu installieren, die auf Amazon Elastic Beanstalk läuft, aber ich kann es nicht zum Laufen bringen.Elastic Beanstalk scipy installieren
Hier sind die Schritte, um mein Problem zu reproduzieren:
Das regelmäßige Material von 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 = ['*']
Installation 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
ich hier bei einem Verlust bin. Es scheint, als könnte ich das vielleicht an einer EC2-Instanz mit mehr RAM arbeiten lassen, aber das kann ich nicht wirklich machen, weil es mich aus der freien Schicht herausholt. Gibt es eine Möglichkeit, den make-Befehl auszuführen, sodass er nicht so viel Speicher oder eine andere Lösung benötigt?
Das gleiche hier. Ich habe diesen Weg gefunden, um dem EB zu sagen, dass er meine Pip - Version hochladen soll: 'commands: 00_update_pip: Befehl:"/opt/python/run/vend/bin/pip install --upgrade pip "'. Ich würde gerne wissen, ob es eine Möglichkeit gibt, dem EB etwas wie 'pip install - no-cache-dir -r requirements.txt' zu sagen. Ich erinnere mich, dass ich es mehrmals hatte, als ich Pakete * direkt * auf der EB-Instanz installierte, und ich löste es auf diese Weise. –
Hat meine Antwort für Sie funktioniert? –
@MattiaPaterna Ich habe aufgehört zu arbeiten, als Sie so IDK beantwortet haben – michaelsnowden