Python App Engine: AttributeError: у объекта 'module' нет атрибута 'Stock' - PullRequest
2 голосов
/ 28 марта 2012

Я получаю эту ошибку только в процессе производства.На localhost это работает хорошо.

Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 701, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/s~ordenaacoes/2.357768699674437719/controllers/mainh.py", line 74, in get
    'stocks': goodStocks(),
  File "/base/data/home/apps/s~ordenaacoes/2.357768699674437719/controllers/mainh.py", line 108, in goodStocks
    goodStocks = memcache.get("goodStocks")
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/memcache/__init__.py", line 574, in get
    results = rpc.get_result()
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 592, in get_result
    return self.__get_result_hook(self)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/memcache/__init__.py", line 639, in __get_hook
    self._do_unpickle)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/memcache/__init__.py", line 271, in _decode_value
    return do_unpickle(value)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/memcache/__init__.py", line 412, in _do_unpickle
    return unpickler.load()
  File "/base/python_runtime/python_dist/lib/python2.5/pickle.py", line 852, in load
    dispatch[key](self)
  File "/base/python_runtime/python_dist/lib/python2.5/pickle.py", line 1084, in load_global
    klass = self.find_class(module, name)
  File "/base/python_runtime/python_dist/lib/python2.5/pickle.py", line 1119, in find_class
    klass = getattr(mod, name)
AttributeError: 'module' object has no attribute 'Stock'

Сток - один класс моих моделей.Я также тестировал Python 2.5 на localhost.

Строка, которая выдает ошибку, - это доступ к memcache (функция get).
Я изменил проект и, возможно, тип данных, которые я поместил в memcacheэто отличается.У меня есть какой-нибудь способ очистить данные в memcache?

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Начиная с версии 1.6.4, в консоли администратора есть средство просмотра Memcache. Он включает кнопку «Очистить кэш», которая должна делать именно то, что вам нужно.

1 голос
/ 28 марта 2012

Скорее всего, у вас в memcache версия маринованного объекта, которая не соответствует вашему новому коду.Вот старый вопрос по очистке memcache, ответ должен относиться к вашему случаю:

Как мне Google App Engine очищать memcache при каждом развертывании сайта?

...