将django app部署到Elastic Beanstalk - requirements.txt错误

时间:2016-03-16 02:05:47

标签: python django amazon-web-services elastic-beanstalk

我在部署应用程序时遇到问题,特别是requirements.txt文件中的某些模块不满意。不太确定自应用程序的本地版本有效以来,最佳解决方案是什么。

从日志中可以看出,错误本身就出现了几次。有没有人遇到这个,如果有的话有任何建议或解决方案?

登录

 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)

2 个答案:

答案 0 :(得分:1)

好吧,我终于得到了它的工作,虽然它没有提供我原来的问题的答案。我基本上必须从父django文件夹中压缩文件。一旦我这样做并重新上传,包括requirements.txt,该应用就成功部署了。

答案 1 :(得分:0)

在您的本地环境中运行pip freeze。这应该给你一个依赖列表。

例如,我在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

以及您的.config文件`可能需要一些yum包,例如:

<强> myapp.config

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

您的回答可能在这里: Error while full update pip packages