1

Я пишу простой код для доступа к серверу dev. Оба сервера dev и эмулятор хранилища данных запускались локально.GAE: AssertionError: нет прокси-сервера api для службы «datastore_v3»

from google.appengine.ext import ndb 

class Account(ndb.Model): 
    name = ndb.StringProperty() 

acc = Account(name=u"test").put() 
print(acc) 

Ошибка:

AssertionError: No api proxy found for service "datastore_v3" 

Я попытался установить: export DATASTORE_EMULATOR_HOST=localhost:8760. Это не помогает.

$ dev_appserver.py ./app.yaml 
WARNING 2017-02-20 06:40:23,130 application_configuration.py:176] The "python" runtime specified in "./app.yaml" is not supported - the "python27" runtime will be used instead. A description of the differences between the two can be found here: 
https://developers.google.com/appengine/docs/python/python25/diff27 
INFO  2017-02-20 06:40:23,131 devappserver2.py:764] Skipping SDK update check. 
INFO  2017-02-20 06:40:23,508 api_server.py:268] Starting API server at: http://localhost:53755 
INFO  2017-02-20 06:40:23,514 dispatcher.py:199] Starting module "default" running at: http://localhost:8080 
INFO  2017-02-20 06:40:23,517 admin_server.py:116] Starting admin server at: http://localhost:8000 

ответ

2

GAE код приложение не может работать как питон приложение автономного, он может работать только внутри приложения GAE, который работает внутри вашего Dev сервера. Обычно как часть кода обработчика, запускается через HTTP-запросы к серверу dev.

Вам нужно поместить этот код внутри одного из ваших обработчиков приложений. Например, внутри метода get() обработчика MainPage от main.py в Quickstart for Python App Engine Standard Environment (на самом деле было бы лучше в методе post(), так как ваш код записывается в хранилище данных).

+0

Есть ли способ манипулировать хранилищем данных, используя автономные скрипты? У меня есть большой набор данных в mongodb локально. Мне нужно перенести его в локальный эмулятор хранилища данных, проверить целостность данных, а затем загрузить в облачный хранилище данных. Будет лучше, если я смогу повторно использовать модели ndb. –

+0

Не использовать 'ndb', который доступен только в приложениях GAE. Но да, см. Https://cloud.google.com/datastore/docs/reference/libraries. –

Смежные вопросы