Приложение 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, вы должны сказать это. Смотрите здесь инструкции для этого.
В-третьих, эта ошибка:
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
Надеюсь, это поможет!