ImportError:没有名为queue的模块 - Cloud Foundry上的Flask app

时间:2018-06-12 08:41:11

标签: python flask pip cloudfoundry pivotal-cloud-foundry

我正在尝试将一个烧瓶应用程序(Python 3.5)推送到Cloud Foundry(CF)。应用程序接受POST请求(文本文件)并返回消息。它在本地工作(通过Postman测试)。但是,当试图将其推送到CF时,它会给出错误 -

  

ImportError:没有名为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)

我已尝试过建议的解决方案here,但这些都没有解决我的问题。我认为问题在于CF中的Python没有队列包。 (我可能是错的)。

任何关于如何解决这个问题的想法都将非常感激。提前致谢!

1 个答案:

答案 0 :(得分:0)

正如@KlausD的评论中提到的,您似乎安装了错误的Python版本。在Cloud Foundry上,您可以通过在项目的根目录中包含名为runtime.txt的文件(即您正在运行cf push的目录)来设置版本。

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

该文件用于告诉Python buildpack要为您安装哪个版本的Python。建议将是python-3.5.xpython-3.6.x,它将安装最新的3.5或3.6版本。您可以指定一个确切的版本,例如python-3.5.5,但不推荐使用它,因为在新版本的Python发布时很容易忘记更新该文件。

您可以在此处查看buildpack支持哪些版本的Python。

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

(请注意,在我写这篇文章时,链接会转到buildpack的最新版本,它会过时。将来,只需单击最新版本的buildpack即可查看随附的内容)。