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

memcache をインストールします

pip install python-memcached
于 2012-11-20T09:21:58.143 に答える
1

キャッシング バックエンドは、おそらく memcache を使用するように構成されています。Memcache が google-appengine で利用できるようになりました。appengine api google.appengine.api.memcacheの memcache ラッパーを使用する必要があります。

djangoでカスタム キャッシュ バックエンドを使用する必要があります。appengine の memcache API を使用する独自の django キャッシュ バックエンドを実装する必要がある場合があります。appengine API の関数は Django キャッシュ バックエンドに簡単にマップされるため、Django バックエンドの実装は簡単です。参照としてバックエンドを作成する場合は、django.core.cache.backends.MemcachedCacheを使用できます。

于 2012-11-20T10:02:07.223 に答える
0

あなたの設定はおかしなものです。多くの問題に遭遇すると思います。

django 1.4 用に GAE が提供するライブラリを使用していますが、django-nonrel 用に設計された djangoappengine もインポートされています。

GAE 提供のライブラリと django-nonrel がうまく連携しているとは思えません。多くの奇妙なエラーが発生する可能性が高いと思います。

純粋な django-nonrel を使用していた場合、ミドルウェアは正常にセットアップされていると思います。

これはローカルで機能し、展開するときにのみ壊れますか? その場合、ローカルで django-nonrel を使用している可能性が最も高いですが、デプロイしていないため、デプロイ時に GAE が提供するバージョンを使用しています。

django-nonrel がプロジェクト フォルダーにあることを確認します。また、app.yaml で django 1.4 を有効にしないでください。

于 2012-11-20T15:32:41.440 に答える