cpage
cpage

Reputation: 39

Error when Trying to Deploy Flask App to AWS Elastic Beanstalk

I am trying to deploy a Flask application using AWS Elastic Beanstalk and unfortunately have run into the following error. What confuses me is that the current version of pip in my virtual environment and local machine is 9.0.1, so I am not sure why it is picking up 7.1.2.

Command "/opt/python/run/venv/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-L32BGc/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-nO55i_-record/install-record.txt --single-version-externally-managed --compile --install-headers /opt/python/run/venv/include/site/python2.7/cffi" failed with error code 1 in /tmp/pip-build-L32BGc/cffi
  You are using pip version 7.1.2, however version 9.0.1 is available.
  You should consider upgrading via the 'pip install --upgrade pip' command.
  2017-01-29 15:42:34,743 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 541, 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)

Upvotes: 0

Views: 810

Answers (1)

Qingshan
Qingshan

Reputation: 418

This is because the pip version is too old. you can add .ebextensions to solve this.

  1. add .ebextensions folder in the root folder of your app
  2. put a pip.config file inside it, the content is :

commands:
  update_pip:
  command: "/opt/python/run/venv/bin/pip install --upgrade pip"
  1. run eb deploy again, it will be resolved.

Upvotes: 1

Related Questions