【问题标题】:Cannot deploy Google's AppEngine - unable to install google.appengine library - ModuleNotFound ez_setup无法部署 Google 的 AppEngine - 无法安装 google.appengine 库 - ModuleNotFound ez_setup
【发布时间】:2023-03-03 16:02:01
【问题描述】:

我正在尝试将 API 部署到 Google AppEngine 上的 Google Cloud,使用标准环境中的 python3,并且我想使用 defer 函数将函数放入 Google CloudTasks,如下所示: https://cloud.google.com/appengine/docs/standard/python/taskqueue/push/creating-tasks#using_the_instead_of_a_worker_service

我尝试将 google.appengine 放在 requirements.txt 文件中,其中 python 库通常为 pip install 列出,添加一行 google-appengine,但部署失败,并显示以下错误消息:

ModuleNotFoundError: No module named 'ez_setup'

我已将 ez_setup 添加到要求列表中,在 appengine 之前,它仍然会导致相同的错误。

我也尝试过在不导入 google.appengine 的情况下部署它,我认为它可能已经安装了,但随后我收到了预期的错误,说 No module named 'google.appengine' 在它的导入上。

我在安装/导入这个库时有什么遗漏吗?还是该库已弃用,而使用了一些新库来推迟

我也尝试在本地计算机上安装该库,但也没能在此处安装。

【问题讨论】:

  • 请不要发布文字图片,而是将文字复制粘贴到您的帖子中并相应地格式化。谢谢。

标签: python python-3.x google-app-engine google-cloud-platform google-app-engine-python


【解决方案1】:

根据公共文档中的说明,您只有 Shared

python 3.7 运行时不提供创建任务并将它们放入推送队列的功能。这就是无法部署它的原因。

如果您在 Python 2.7 上尝试它应该可以正常工作。

【讨论】:

    【解决方案2】:

    正如@OqueliAMartinez 的回答中提到的,您正在寻找的功能(任务队列 API)在 python37/2nd 代标准环境中不可用。您引用的文档页面仅适用于python27/1st generation标准环境。

    对于其他运行时/环境,包括 python37,您需要使用Cloud Tasks API。不幸的是,它不支持(至少还不支持)延迟任务。来自Features in Task Queues not yet available via Cloud Tasks API

    Deferred/delayed tasks:

    在某些情况下,您可能需要一系列不同的小任务 异步处理,但您不想完成 设置单独的不同处理程序,App Engine SDK 允许您 使用运行时特定的库来创建简单的函数来管理 这些任务。此功能在 Cloud Tasks 中不可用。笔记, 不过,可以在未来使用 Cloud 安排正常任务 任务。

    在这种情况下,延迟函数的唯一方法是在工作端的任务队列处理程序中调用它们(并根据需要安排未来的任务以实现延迟)。

    不知何故相关:Cloud Tasks API for python2.7 google app engine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多