Я экспериментирую с Google App Engine's flexible Python 3 environment and Cloud Datastore. При тестировании локально это (обычно) требует запуска вашего приложения в чем-то вроде Gunicorn и доступа к API-интерфейсу хранилища данных от gcloud.datastore
. Например:Где `gcloud.datastore` сохраняют свое локальное состояние dev и как его очистить?
import gcloud.datastore as g_datastore
ds = g_datastore.Client(...)
entity = datastore.Entity(key=ds.key(...))
ds.put(entity)
При запуске локально (в режиме детектора) состояния объектов сохраняются между прогонами. Я не могу на всю жизнь понять, где они хранятся, или как очистить хранилище данных, созданное после создания/доступа к gcloud.datastore.Client
. Насколько я могу судить, он не использует то же место, которое использует ndb
при запуске через dev_appserver.py
.
Я попытался выяснить это с чем-то вроде этого (при запуске OS X):
$ touch foo
$ GCLOUD_PROJECT=... python .../main.py
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: ...
127.0.0.1 - - [04/Jul/2016 10:36:01] "GET/HTTP/1.1" 200 -
...
^C
$ sudo find /private/tmp /var/db /var/tmp ~/.config/gcloud ~/Library -newer foo
...
# nothing meaningful
Я попытался, глядя на исходный код, и нашел some unit test cleanup code что: а) не распространяется с pip install gcloud
; и (что более важно для меня) b) не дает никакого представления о том, где это вещество фактически хранится.
Я даже попытался это в то время как Gunicorn бегала:
$ sudo lsof | grep -Ei 'python'
# nothing meaningful
Где Foo делает gcloud.datastore
магазин свое состояние между запусками при запуске локально (в режиме разработчика) ?!
Возможно, вы захотите прочитать этот ответ, который поможет в настройке gcloud очень детально для appengine. http://stackoverflow.com/a/28095663/1059396 – minocha
Я не думаю, что это помогает мне. 'dev_appserver.py' несовместим с гибкой средой Python (особенно Python 3). – posita