Невалиден requirements.txt при внедряване на приложението django в aws beanstalk

Внедрявах приложението си без никакви проблеми със средата на бобеното стъбло до последния си ангажимент.

Сега разбирам това

Time    Type    Details
2013-09-01 10:19:12 UTC+0800    ERROR   Failed to deploy application.
2013-09-01 10:19:11 UTC+0800    ERROR   Responses from [i-50f40d06] were received, but the commands failed.
2013-09-01 10:19:11 UTC+0800    ERROR   Your requirements.txt is invalid. Snapshot your logs for details.
2013-09-01 10:19:11 UTC+0800    ERROR   [Instance: i-50f40d06 Module: AWSEBAutoScalingGroup ConfigSet: Hook-PreAppDeploy] Failed on instance with return code: 1 Output: Error occurred during build: Command hooks failed .

Дневниците на моментните снимки казват следното:

2013-09-01 02:19:08,852 [INFO] (9941 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: New python executable in /opt/python/run/venv/bin/python2.6
Not overwriting existing python script /opt/python/run/venv/bin/python (you must use /opt/python/run/venv/bin/python2.6)
Installing distribute..................................................................................................................................................................................................done.
Installing pip................done.
2013-09-01 02:19:08,564 ERROR    Error installing dependencies: Command '/opt/python/run/venv/bin/pip install --use-mirrors -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status -9
Traceback (most recent call last):
  File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 31, in main
    install_dependencies()
  File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 25, in install_dependencies
    shell=True)
  File "/usr/lib/python2.6/subprocess.py", line 502, in check_call
    raise CalledProcessError(retcode, cmd)
CalledProcessError: Command '/opt/python/run/venv/bin/pip install --use-mirrors -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status -9

2013-09-01 02:19:08,853 [ERROR] (9941 MainThread) [directoryHooksExecutor.py-34] [root directoryHooksExecutor error] Script failed with returncode 1
2

Моят requirements.txt е същият като преди. Опитах се да премахна всичко и в requirements.txt, но отново получавам същата грешка, което ме кара да мисля, че проблемът е бил преди изпълнението на requirements.txt.

Не знам реда, в който се разполагат нещата. Както и да е, ето моят конфигурационен файл:

packages:
  yum:
    libjpeg-devel: '6b'
    zlib-devel: []
    freetype-devel: []


container_commands:
  01_install_mysqldb:
    command: "pip install distribute==0.6.28; pip install mysql-python;"
  02_syncdb:
    command: "python manage.py syncdb --noinput"
    leader_only: true
  03_createadmin:
    command: "python scripts/createadmin.py"
    leader_only: true
  04_collectstatic:
    command: "python manage.py collectstatic --noinput"
  05_migrate_wizards:
    command: "python manage.py migrate wizards --noinput"
    leader_only: true
  06_migrate_facebook:
    command: "python manage.py migrate facebook --noinput"
    leader_only: true
  07_migrate_socialaccount:
    command: "python manage.py migrate socialaccount 0011 --noinput"
    leader_only: true
  08_migrate_missions:
    command: "python manage.py migrate missions --noinput"
    leader_only: true
  09_migrate_mailchimp:
    command: "python manage.py migrate mailchimp --noinput"
    leader_only: true
  10_migrate_actstream:
    command: "python manage.py migrate actstream --noinput"
    leader_only: true

option_settings:
  - namespace: aws:elasticbeanstalk:container:python
    option_name: WSGIPath
    value: ideatory/wsgi.py
  - namespace: aws:elasticbeanstalk:container:python:staticfiles
    option_name: /static/
    value: static/
  - option_name: DJANGO_SETTINGS_MODULE
    value: ideatory.settings

person vaisaghvt    schedule 01.09.2013    source източник
comment
-@vaisaghvt реши ли проблема си?   -  person tim peterson    schedule 28.09.2013
comment
Както @jvannistelrooy каза по-долу, единственото нещо, което най-накрая проработи за мен, беше възстановяването на средата.   -  person vaisaghvt    schedule 30.01.2014
comment
Как преглеждате регистрационните файлове на моментните снимки?   -  person Ben Davis    schedule 09.09.2017


Отговори (5)


Имах абсолютно същия проблем. Единственото нещо, което работеше за мен, беше (автоматичното) възстановяване на цялата ми среда. Можете да направите това в конзолата на AWS. Отидете до вашата среда и щракнете върху Действия > Възстановяване на среда. Това ще отнеме известно време, след което автоматично ще рестартира приложението ви без тази грешка.

Актуализация:

Проблемът продължава да се връща от време на време. Разбрах, че нещо се обърка, когато pip компилира psycopg, което е необходимо за поддръжка на postgreSQL. Все още не съм намерил истинско решение.

person JacobF    schedule 07.01.2014
comment
намерихте ли решение за psycopg? Изправен съм пред същия проблем и се опитвам да го разбера. Благодаря ! - person Sandeep; 11.07.2014
comment
@user2608802 Не, за съжаление спрях да използвам Elastic Beanstalk и промених настройката си на AWS. - person JacobF; 16.07.2014
comment
Този блог от realpython.com изглежда има решение: realpython.com/blog/python/ - person Ceasar Bautista; 07.04.2015
comment
Някой намери ли решение за този проблем. Срещнах абсолютно същата грешка след последния ми комит. Интересното е, че не съм променил нито един ред от моя код. Единствената разлика е, че поради смяната на компютъра ми трябваше да инсталирам EB отново на моята машина. - person 1man; 30.12.2015
comment
за да изградите psycopg, вашата среда се нуждае от postgresql93-devel (или 94, в зависимост от версията на вашата платформа) - person Eduard Gamonal; 16.03.2016
comment
Имам postgresql 10.7, работещ на моята локална машина с ubuntu. Трябва ли да добавя postgresql==10.7 в requirements.txt преди psycopg2? - person Aseem; 23.03.2019
comment
@Sandeep Gyz разреши ли тази грешка, все още преминавам през тази грешка и е гадно. - person Rahul Verma; 24.02.2021

Успях да направя това да работи, като добавих postgresql93-devel и postgresql93 към моя .ebextensions

както е описано в Персонализиране на софтуера на екземпляри на EC2, работещи под Linux

Това работи за 64bit Amazon Linux 2014.09 v1.0.9 running Python 2.7

in .ebextensions/01_pre_deps.config:

packages:
  yum:
    gcc-c++: []
    make: []
    openssl-devel: []
    git: []
    python-devel: []
    python27-devel: []
    ruby-devel: []
    postgresql93: []
    postgresql93-devel: []
    # nginx: []
  rubygems:
    bundler: '1.7.3'
    compass-core: '1.1.0.alpha.3'
    neat-compass: '1.6.0'
person yolk    schedule 20.11.2014
comment
Всъщност използвам MySQL база данни, така че не мисля, че това решение е приложимо. - person vaisaghvt; 01.12.2014
comment
това проработи за мен, всичко, което трябваше да добавя в моя конфигурационен файл, бяха редовете postgresql93 и postgresql93-devel под заглавието packages/yum/. Пускам този aws beanstalk - person Jock; 18.10.2017
comment
Имам postgresql 10.7, работещ на моята локална машина с ubuntu. Трябва ли да добавя postgresql10:[ ] към файловете .ebextensions? - person Aseem; 23.03.2019
comment
@Aseem това би имало смисъл за мен. - person yolk; 07.05.2019

Уверихте ли се, че пакетът mysql-devel е инсталиран? Изглежда не е включено в секцията yum на вашия конфигурационен файл.

person Anass    schedule 13.11.2013
comment
Имам същия проблем, но имам инсталиран mysql-devel. - person JacobF; 07.01.2014
comment
Да, инсталирано е. Както споменах, работеше добре до този комит. Нямам представа какво се е объркало, но възстановяването на околната среда е единственото нещо, което работи. - person vaisaghvt; 30.01.2014

Въпреки че е различен сценарий от описания в OP, той може да бъде полезен за някого:

Получихме същото ERROR Your requirements.txt is invalid. Snapshot your logs for details. съобщение, докато се опитвахме да внедрим минимално тестово приложение в новосъздадено t1.micro копие на Elastic Beanstalk.

Тестовото приложение се състоеше от основното примерно приложение на AWS Python (оттук), към който добавихме .ebextensions/software.config и requirements.txt от нашата производствена среда. Единствената цел беше да се тестват тези два файла при внедряване.

По-внимателната проверка на трупите разкри MemoryError по време на pip install. След надграждане до екземпляр t2.small внедряването е успешно без проблем.

person djvg    schedule 18.09.2018

По някаква причина AWS не инсталира postgresql-devel пакети от моя .extensions/01_packets.config, както предложи yolk. Така че вместо това трябваше да добавя

container_commands:
  01_addPostgreSQLPacket:
    command: 'yum install postgresql95-devel'
    leader_only: true

на моя 02_django.config. След това работи добре.

person TheSeeker    schedule 21.07.2017