简体   繁体   中英

Deploying django app to Elastic Beanstalk - requirements.txt error

I'm having trouble deploying an application, specifically with some modules in the requirements.txt file not being satisfied. Not quite sure what's the best solution would be since the local version of the app works.

As you can see from the log, the error presents itself a couple of times. Has anyone ever encountered this and if so have any suggestion or solution?

log:

 Collecting mysqlclient==1.3.7 (from -r /opt/python/ondeck/app/requirements.txt (line 17))
    Downloading mysqlclient-1.3.7.tar.gz (79kB)
  Collecting pathspec==0.3.3 (from -r /opt/python/ondeck/app/requirements.txt (line 18))
    Downloading pathspec-0.3.3.tar.gz
  Collecting python-dateutil==2.5.0 (from -r /opt/python/ondeck/app/requirements.txt (line 19))
    Downloading python_dateutil-2.5.0-py2.py3-none-any.whl (199kB)
  Collecting PyYAML==3.11 (from -r /opt/python/ondeck/app/requirements.txt (line 20))
    Downloading PyYAML-3.11.tar.gz (248kB)
  Collecting requests==2.6.2 (from -r /opt/python/ondeck/app/requirements.txt (line 21))
    Downloading requests-2.6.2-py2.py3-none-any.whl (470kB)
  Collecting six==1.10.0 (from -r /opt/python/ondeck/app/requirements.txt (line 22))
    Downloading six-1.10.0-py2.py3-none-any.whl
  Collecting texttable==0.8.4 (from -r /opt/python/ondeck/app/requirements.txt (line 23))
    Downloading texttable-0.8.4.tar.gz
  Collecting vboxapi==1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 24))
    Could not find a version that satisfies the requirement vboxapi==1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 24)) (from versions: )
  No matching distribution found for vboxapi==1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 24))
  You are using pip version 7.1.2, however version 8.1.0 is available.
  You should consider upgrading via the 'pip install --upgrade pip' command.
  2016-03-16 01:55:53,057 ERROR    Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1
  Traceback (most recent call last):
    File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 22, in main
      install_dependencies()
    File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 18, in install_dependencies
      check_call('%s install -r %s' % (os.path.join(APP_VIRTUAL_ENV, 'bin', 'pip'), requirements_file), shell=True)
    File "/usr/lib64/python2.7/subprocess.py", line 540, in check_call
      raise CalledProcessError(retcode, cmd)
  CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 (ElasticBeanstalk::ExternalInvocationError)
caused by: Collecting awsebcli==3.7.3 (from -r /opt/python/ondeck/app/requirements.txt (line 1))
    Downloading awsebcli-3.7.3.tar.gz (172kB)
  Collecting blessed==1.9.5 (from -r /opt/python/ondeck/app/requirements.txt (line 2))
    Downloading blessed-1.9.5-py2.py3-none-any.whl (77kB)
  Collecting botocore==1.4.3 (from -r /opt/python/ondeck/app/requirements.txt (line 3))
    Downloading botocore-1.4.3-py2.py3-none-any.whl (2.2MB)
  Collecting cement==2.4.0 (from -r /opt/python/ondeck/app/requirements.txt (line 4))
    Downloading cement-2.4.0.tar.gz (129kB)
  Collecting colorama==0.3.3 (from -r /opt/python/ondeck/app/requirements.txt (line 5))
    Downloading colorama-0.3.3.tar.gz
  Collecting Django==1.9.1 (from -r /opt/python/ondeck/app/requirements.txt (line 6))
    Downloading Django-1.9.1-py2.py3-none-any.whl (6.6MB)
  Collecting django-cors-headers==1.1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 7))
    Downloading django-cors-headers-1.1.0.tar.gz
  Collecting django-filter==0.11.0 (from -r /opt/python/ondeck/app/requirements.txt (line 8))
    Downloading django_filter-0.11.0-py2.py3-none-any.whl
  Collecting djangorestframework==3.3.1 (from -r /opt/python/ondeck/app/requirements.txt (line 9))
    Downloading djangorestframework-3.3.1-py2.py3-none-any.whl (576kB)
  Collecting docker-py==1.1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 10))
    Downloading docker-py-1.1.0.tar.gz (42kB)
  Collecting dockerpty==0.3.4 (from -r /opt/python/ondeck/app/requirements.txt (line 11))
    Downloading dockerpty-0.3.4.tar.gz
  Collecting docopt==0.6.2 (from -r /opt/python/ondeck/app/requirements.txt (line 12))
    Downloading docopt-0.6.2.tar.gz
  Collecting docutils==0.12 (from -r /opt/python/ondeck/app/requirements.txt (line 13))
    Downloading docutils-0.12.tar.gz (1.6MB)
  Collecting jmespath==0.9.0 (from -r /opt/python/ondeck/app/requirements.txt (line 14))
    Downloading jmespath-0.9.0-py2.py3-none-any.whl
  Collecting jsonfield==1.0.3 (from -r /opt/python/ondeck/app/requirements.txt (line 15))
    Downloading jsonfield-1.0.3.tar.gz
  Collecting MySQL-python==1.2.5 (from -r /opt/python/ondeck/app/requirements.txt (line 16))
    Downloading MySQL-python-1.2.5.zip (108kB)
  Collecting mysqlclient==1.3.7 (from -r /opt/python/ondeck/app/requirements.txt (line 17))
    Downloading mysqlclient-1.3.7.tar.gz (79kB)
  Collecting pathspec==0.3.3 (from -r /opt/python/ondeck/app/requirements.txt (line 18))
    Downloading pathspec-0.3.3.tar.gz
  Collecting python-dateutil==2.5.0 (from -r /opt/python/ondeck/app/requirements.txt (line 19))
    Downloading python_dateutil-2.5.0-py2.py3-none-any.whl (199kB)
  Collecting PyYAML==3.11 (from -r /opt/python/ondeck/app/requirements.txt (line 20))
    Downloading PyYAML-3.11.tar.gz (248kB)
  Collecting requests==2.6.2 (from -r /opt/python/ondeck/app/requirements.txt (line 21))
    Downloading requests-2.6.2-py2.py3-none-any.whl (470kB)
  Collecting six==1.10.0 (from -r /opt/python/ondeck/app/requirements.txt (line 22))
    Downloading six-1.10.0-py2.py3-none-any.whl
  Collecting texttable==0.8.4 (from -r /opt/python/ondeck/app/requirements.txt (line 23))
    Downloading texttable-0.8.4.tar.gz
  Collecting vboxapi==1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 24))
    Could not find a version that satisfies the requirement vboxapi==1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 24)) (from versions: )
  No matching distribution found for vboxapi==1.0 (from -r /opt/python/ondeck/app/requirements.txt (line 24))
  You are using pip version 7.1.2, however version 8.1.0 is available.
  You should consider upgrading via the 'pip install --upgrade pip' command.
  2016-03-16 01:55:53,057 ERROR    Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1
  Traceback (most recent call last):
    File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 22, in main
      install_dependencies()
    File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 18, in install_dependencies
      check_call('%s install -r %s' % (os.path.join(APP_VIRTUAL_ENV, 'bin', 'pip'), requirements_file), shell=True)
    File "/usr/lib64/python2.7/subprocess.py", line 540, in check_call
      raise CalledProcessError(retcode, cmd)
  CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 (Executor::NonZeroExitStatus)

Run pip freeze on your local environment. That should give you a list of dependencies.

For example I heave this in one of my apps on AWS

requirements.txt

boto==2.38.0
Django==1.6.4
MySQL-python==1.2.5
argparse==1.3.0
dj-database-url==0.3.0
wsgiref==0.1.2
south==0.8.4
whoosh==2.7.0
django-haystack==2.4.0
django-elasticache==0.0.3
pylibmc==1.5.0
django-storages==1.1.8

and also your .config file` may need some yum packages such as this:

myapp.config

packages:
    yum:
        python27-devel: []
        libmemcached-devel: []
        libjpeg-turbo-devel: []
#01_syncdb:
...

Your answer may be here: Error while full update pip packages

Alright so, I finally got it working, although it doesn't provide an answer to my original issue. I basically had to zip the files from within the parent django folder. Once I did that and re-uploaded it including the requirements.txt , the app successfully deployed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM