В Cloud Shell нет модуля с именем google.appengine. - PullRequest
0 голосов
/ 10 января 2019

Я тестирую Google App Engine и пытаюсь запустить простую функцию для загрузки файлов в Blobstore или Cloud Storage. Я набираю код Python прямо в Cloud Shell моего экземпляра. Код не работает, когда я звоню:

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'

Несмотря на то, что в документации сказано: Вы можете использовать Google Cloud Shell, которая поставляется с уже установленными git и Cloud SDK , я попытался установить несколько библиотек:

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 голосов
/ 11 января 2019

Спасибо @ Дастин Ингрэм

Я нашел ответ на этой странице .

Текущий «правильный» способ загрузки в облачное хранилище - это использование google.cloud.storage. Учебник, который я привел выше, объясняет, как его реализовать.

Однако у меня сложилось впечатление, что при использовании google.appengine для этого используется удвоенная пропускная способность. Первоначально клиентский интерфейс получал URL-адрес для загрузки и отправлял файл непосредственно в Blobstore (или в Cloud Storage). Теперь приложение загружается в серверную часть, которая, в свою очередь, загружается в облачное хранилище.

Я не слишком обеспокоен, поскольку я не буду иметь дело с чрезмерно большими файлами, но кажется странным, что возможность прямой загрузки была прекращена.

В любом случае, моя проблема была решена.

0 голосов
/ 10 января 2019

Модуль google.appengine встроен в среду исполнения Python (2.7) первого поколения. Его нельзя установить через pip, во время выполнения второго поколения (3.7) или в Cloud Shell.

Единственный способ его использования - написание и развертывание приложения App Engine первого поколения.

...