Google App Engine - ModuleNotFoundError:没有名为“dlib”的模块

Posted

技术标签:

【中文标题】Google App Engine - ModuleNotFoundError:没有名为“dlib”的模块【英文标题】:Google App Engine - ModuleNotFoundError: No module named 'dlib' 【发布时间】:2021-07-05 10:45:58 【问题描述】:

我有一个使用“dlib”库的 Flask 应用程序。我正在尝试在 Google App Engine 上运行它,但一旦我尝试访问它就会失败。日志中的错误是“ModuleNotFoundError:没有名为“dlib”的模块。以前,我在 requirements.txt 文件中有“dlib”,但在部署应用程序时它总是失败,并出现与“CMAKE”相关的错误。然后我通过谷歌控制台手动安装了“dlib”。目前它位于“Location:/home/myusername/.local/lib/python3.7/site-packages”下。

当我尝试在 Google 控制台上本地运行该应用程序时,它工作得非常好,但使用 gcloud app deploy 命令却无法正常工作。我浪费了 2 天时间试图找出问题,但没有成功。任何帮助将不胜感激。

【问题讨论】:

您使用的是 App Engine Flex 还是标准版? @YeriPelona 弹性环境。 【参考方案1】:

你可以看看这个similar question。

总结:

您可以在 Flexible 环境中使用非 Python 依赖项,通过 custom runtime:

自定义运行时允许您定义新的运行时环境,其中可能包括语言解释器或应用程序服务器等附加组件。

如果要自定义环境,可以使用容器。有一些注意事项需要牢记:

Flex 不会扩展到 0,因此即使您的服务未被使用,您也需要付费。

在这种情况下,解决方法可能是Cloud Run。它可以扩展到零并且按使用付费,而且功能强大。

【讨论】:

以上是关于Google App Engine - ModuleNotFoundError:没有名为“dlib”的模块的主要内容,如果未能解决你的问题,请参考以下文章

连接 Google App Engine 和 Google Compute Engine

Google App Engine Flexible 和 Google Container Engine 之间的区别?

如何在 Google Cloud App Engine 上使用 PubSub 创建订阅者,该订阅者通过 Publisher 从 Google Cloud App Engine Flex 收听消息?

将 Meteor 部署到 Google App Engine 2017

Google BigQuery 的 Google App Engine 授权

Google App Engine 通过内部网络与 Compute Engine 通信