ImportError: Нет очереди с именем модуля - приложение Flask в Cloud Foundry

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

ImportError: нет модуля с именем очереди

Вот мой код, который содержит очередь.

import queue as Queue
self._batch_queue = Queue.Queue(self.BATCH_QUEUE_MAX)
self._example_queue = Queue.Queue(self.BATCH_QUEUE_MAX * self._hps.batch_size)

Я попробовал решения, предложенные здесь, но ни один из них не решил мою проблему. Я думаю, что проблема в том, что у Python в CF нет пакета очереди. (Я могу ошибаться).

Любые идеи о том, как решить эту проблему, будут очень благодарны. Заранее спасибо!

1 ответ

Решение

Как упоминалось в комментариях @KlausD, похоже, что у вас установлена ​​неправильная версия Python. В Cloud Foundry вы должны установить версию, включив файл с именем runtime.txt в корне вашего проекта (т.е. в каталоге, из которого вы работаете cf push).

https://docs.cloudfoundry.org/buildpacks/python/index.html

Этот файл используется, чтобы сообщить сборочному пакету Python, какую версию Python установить для вас. Предложения будут python-3.5.x или же python-3.6.x который установит последнюю версию 3.5 или 3.6. Вы можете указать точную версию как python-3.5.5 но это не рекомендуется, так как легко забыть обновить этот файл, когда выйдут новые версии Python.

Вы можете увидеть, какие версии Python поддерживаются пакетом сборки здесь.

https://buildpacks.cloudfoundry.org/

(Обратите внимание, что ссылка ведет на последнюю версию пакета сборки на момент написания этой статьи, она устареет. В будущем просто нажмите на самую последнюю версию пакета сборки, чтобы узнать, что поставляется с ней).

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