dev_appserver.py
по-прежнему доступен во время выполнения GAE Python 3, однако это не рекомендуется, поскольку это идет вразрез с идиоматической песочницей, к которой они сейчас стремятся.Чтобы заставить его работать, есть несколько дополнительных шагов к тому, к чему вы привыкли.Сначала запустите в своем терминале cloud beta emulators datastore env-init
, чтобы получить переменные среды эмулятора хранилища данных ваших проектов.Если все по умолчанию, они должны выглядеть примерно так:
DATASTORE_DATASET=your-project-name
DATASTORE_EMULATOR_HOST=localhost:8081
DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore
DATASTORE_HOST=http://localhost:8081
DATASTORE_PROJECT_ID=your-project-id
Теперь примените эти переменные к терминалу, который вы будете запускать dev_appserver.py
, с помощью следующего (это сделает средство просмотра хранилища данных в dev_appserver.py
подключится правильнов эмулятор хранилища данных):
$ $(gcloud beta emulators datastore env-init)
Теперь вам нужно передать эти переменные в python venv внутри dev_appserver.py
со следующей структурой аргументов (это позволит облачным библиотекам Google вашего приложения правильно подключаться к эмулятору хранилища данных):
$ dev_appserver.py \
--application=your-project-name \
--env_var DATASTORE_DATASET=your-project-name \
--env_var DATASTORE_EMULATOR_HOST=localhost:8081 \
--env_var DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore \
--env_var DATASTORE_HOST=http://localhost:8081 \
--env_var DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore \
[PATH_TO_YOUR_APP]
Наконец, откройте второй терминал и запустите эмулятор хранилища данных с помощью:
$ gcloud beta emulators datastore start
Все должно работать.Обратите внимание, что я предположил, что ваш проект правильно настроен для среды Python 3 (новая структура app.yaml
и наличие файла requirements.txt
)