Недопустимый файл requirements.txt при развертывании приложения django в aws beanstalk

Я развертывал свое приложение без каких-либо проблем в среде 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

Мои требования.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 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, как предложил желток. Поэтому вместо этого мне пришлось добавить

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

к моему 02_django.config. После этого он работал нормально.

person TheSeeker    schedule 21.07.2017