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

时间:2019-01-10 16:13:31

标签: google-app-engine google-cloud-platform google-app-engine-python

我正在测试Google App Engine,并尝试运行一个简单的功能将文件上传到Blobstore或Cloud Storage。我直接在实例的Cloud 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库正常工作?另外,这是否是创建允许用户上传文件的应用程序的错误方法?

2 个答案:

答案 0 :(得分:0)

google.appengine模块已包含在第一代Python(2.7)运行时中。无法通过pip,在第二代(3.7)运行时或Cloud Shell中进行安装。

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

答案 1 :(得分:0)

感谢@Dustin Ingram

我在this page中找到了答案。

当前上传到Cloud Storage的“正确”方法是使用google.cloud.storage。我上面链接的教程解释了如何实现。

但是,我的印象是,它通过google.appengine使用两倍的带宽作为解决方案。最初,前端将接收一个上传URL,并将文件直接发送到Blobstore(或Cloud Storage)。现在,应用程序上传到后端,而后端又上传到Cloud Storage。

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

无论如何,我的问题已经解决了。