ImportError: Нет модуля с именем очереди - приложение Flask в Cloud Foundry - PullRequest
0 голосов
/ 12 июня 2018

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

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

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

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 Ответ

0 голосов
/ 13 июня 2018

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

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

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

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

https://buildpacks.cloudfoundry.org/#/buildpacks/python/v1.6.17

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

...