Cloud Shell 中没有名为 'google.appengine' 的模块

No module named 'google.appengine' from within Cloud Shell

我正在测试 Google App Engine 并尝试 运行 一个将文件上传到 Blobstore 或 Cloud Storage 的简单函数。我直接在实例的云 Shell 中输入 Python 代码。当我调用时代码失败:

from google.appengine.ext import blobstore

我收到错误代码:

Traceback (most recent call last): File "upload_test.py", line 1, in <module> from google.appengine.api import users ImportError: No module named 'google.appengine'

即使文档说:You can use Google Cloud Shell, which comes with git and Cloud SDK already installed,我也尝试安装了一堆库:

gcloud components install app-engine-python

pip install google-cloud-datastore

pip install google-cloud-storage

pip install --upgrade google-api-python-client

我仍然遇到同样的错误。如何让 appengine 库工作?或者,这是创建允许用户上传文件的应用程序的错误方法吗?

google.appengine 模块已融入第一代 Python (2.7) 运行时。无法通过 pip、第二代 (3.7) 运行时或云端 Shell.

安装

使用它的唯一方法是编写和部署第一代 App Engine 应用程序。

感谢@Dustin Ingram

我在 this page 中找到了答案。

目前"correct"上传到云存储的方式是使用google.cloud.storage。我上面链接的教程解释了如何实现它。

然而,我的印象是,这使用两倍于 google.appengine 解决方案的带宽。最初,前端会收到上传 url 并将文件直接发送到 Blobstore(或云存储)。现在应用程序上传到后端,后端又上传到云存储。

我不太担心,因为我不会处理过大的文件,但直接上传的功能已经停止,这似乎很奇怪。

总之我的问题已经解决了