【问题标题】:ImportError: No module named queue - Flask app on Cloud FoundryImportError: No module named queue - Cloud Foundry 上的 Flask 应用程序
【发布时间】:2018-06-12 08:41:10
【问题描述】:

我正在尝试将烧瓶应用程序 (Python 3.5) 推送到 Cloud Foundry (CF)。应用程序接受一个 POST 请求(文本文件)并返回一条消息。它在本地工作(通过 Postman 测试)。但是,当尝试将其推送到 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)

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

任何关于如何解决此问题的想法将不胜感激。提前致谢!

【问题讨论】:

  • 错误的 Python 版本?我预计 Python 2 会出现此错误。
  • 是的。很可能您试图在 python-2 上运行 python-3 程序。阅读:docs.python.org/2/library/queue.html
  • @KlausD。你是对的。这是正确的 Py 版本的问题。 Py 3.5.5 似乎已经解决了这个问题(通过运行时)。

标签: python flask pip cloud-foundry


【解决方案1】:

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

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 即可查看附带的内容)。

【讨论】:

    猜你喜欢
    • 2021-11-11
    • 2017-02-20
    • 2021-07-20
    • 2013-06-27
    • 2019-04-03
    • 1970-01-01
    • 2018-07-20
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多