7

我正在尝试将我的 django 项目部署到 GAE。使用 appcfg.py 部署后,我在 GAE 中收到此错误。有谁知道如何解决这个问题?

Traceback (most recent call last):
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime 
  /wsgi.py", line 223, in Handle
  result = handler(dict(self._environ), self._StartResponse)
  File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django
  /core/handlers/wsgi.py", line 219, in __call__
  self.load_middleware()
  File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django
  /core/handlers/base.py", line 47, in load_middleware
  raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % 
  (mw_module, e))

  ImproperlyConfigured: Error importing middleware django.middleware.cache: "No module 
  named memcache"

下一个代码显示了如何在我的 project.settings 中导入中间件类:

from djangoappengine.settings_base import *

....

MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)

感谢您查看这个。

4

3 回答 3

5

安装内存缓存

pip install python-memcached
于 2012-11-20T09:21:58.143 回答
1

您的缓存后端可能已配置为使用 memcache。Memcache 现在可以在 google-appengine 上使用。您需要使用来自 appengine api google.appengine.api.memcache的 memcache 包装器。

您将需要使用django的自定义缓存后端。您可能需要实现自己的 django 缓存后端,它使用 appengine 的 memcache api。实现一个 django 后端应该是微不足道的,因为来自 appengine api 的函数很容易映射到 django 缓存后端。在编写后端作为参考时,您可以使用django.core.cache.backends.MemcachedCache

于 2012-11-20T10:02:07.223 回答
0

你有一个奇怪的配置,我怀疑你会遇到很多问题。

您正在使用 GAE 为 django 1.4 提供的库但是,您还导入了 djangoappengine,它是为 django-nonrel 设计的。

我认为 GAE 提供的库和 django-nonrel 不能很好地协同工作。我怀疑你可能会遇到很多奇怪的错误。

如果您使用的是纯 django-nonrel,我认为您的中间件设置正常。

这是否在本地工作,并且仅在您部署时中断?在这种情况下,您很可能在本地使用 django-nonrel,但您没有部署它 - 因此在部署时,它使用的是 GAE 提供的版本。

确保 django-nonrel 在您的项目文件夹中。并且不要在你的 app.yaml 中启用 django 1.4。

于 2012-11-20T15:32:41.440 回答