Приложение Flask на Cloud Foundry - Команда "python setup.py egg_info" завершилась ошибкой с кодом ошибки 1

Я пытаюсь отправить приложение Python (3.6.5) через Flask в Cloud Foundry (см. Версию 6.36.1+e3799ad7e.2018-04-04). Приложение принимает запрос POST (текстовый файл), выполняет некоторое преобразование текста, сохраняет новый файл и возвращает подтверждающее сообщение. Работает локально (проверено через Почтальон). Тем не менее, при попытке передать его в CF, он дает следующую ошибку -

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ygzuah5g/logging/

Не могли бы вы дать мне знать, как я могу решить эту проблему? Заранее спасибо. Все файлы вместе составляют ~ 350 МБ. Я использую manifest.yml

---
applications:
- name: textsum
  memory: 512M
  command: python server.py
  buildpack: https://github.com/cloudfoundry/buildpack-python.git

PS - Не уверен, что это полезно, у меня есть import queue в одном из моих файлов. Если я изменю это на import Queue (Py 2x совместимый) и использовать Py 2.7.15 время выполнения, нажатие cf успешно, но выдает ошибки времени выполнения

ERROR in app: Exception on / [POST]
File "/home/vcap/deps/0/python/lib/python2.7/subprocess.py", line 1047, in _execute_child
ERR   raise child_exception
ERR OSError: [Errno 2] No such file or directory
ERR 10.0.65.11 - - [12/Jun/2018 20:56:16] "POST / HTTP/1.1" 500 -

1 ответ

Первый Не делай этого в своем manifest.yml:

buildpack: https://github.com/cloudfoundry/buildpack-python.git

Это говорит Cloud Foundry использовать основную ветку buildpack, которая может меняться довольно часто, и нет никаких гарантий ее пригодности (то есть она может даже сломаться).

Вместо этого убедитесь, что вы используете релиз. Релизы проверены, и код не изменится из-под вас.

Вы можете сделать это с помощью прилагаемого к Python buildpack пакета, просто удалите эту строку или вставьте python_buildpack как имя, или вы можете указать на buildpack: https://github.com/cloudfoundry/buildpack-python.git#v1.6.17 где v1.6.17 это релиз отсюда.

https://github.com/cloudfoundry/python-buildpack/releases

Во-вторых, кажется, что вам нужно сообщить Cloud Foundry & buildpack, какую версию Python вы хотите. Если вам нужен Python 3, вы должны сказать это. Смотрите здесь инструкции для этого.

/questions/30301220/importerror-net-ocheredi-s-imenem-modulya-prilozhenie-flask-v-cloud-foundry/30301232#30301232

В-третьих, эта ошибка:

ERR OSError: [Errno 2] Нет такого файла или каталога

Похоже, вы пытаетесь написать в несуществующее место. Где вы пытаетесь написать свой файл? Пути на вашем локальном компьютере будут другими, чем на Cloud Foundry. Как правило, на Cloud Foundry, вы будете писать временные файлы в /home/vcap/tmp или же /app/tmp (/app символическая ссылка на /home/vcap) или же $HOME/tmp, Все они указывают на одно и то же место.

Я специально упоминаю временные файлы здесь, потому что вы не хотите записывать постоянные файлы в локальную файловую систему Cloud Foundry. Локальная файловая система эфемерна, и ваши данные не будут сохраняться очень долго. Смотрите здесь для деталей.

https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html

Надеюсь, это поможет!

Другие вопросы по тегам