0

何らかの理由で、カスタムミドルウェアが原因でImproperlyConfiguredエラーが発生します。

[Wed Nov 07 20:47:07 2012] [error] [client 158.130.107.158] File does not exist: /home/davidxu/public_html/favicon.ico
[Wed Nov 07 20:47:09 2012] [error] [client 158.130.107.158] mod_wsgi (pid=24114): Exception occurred processing WSGI script '/home/davidxu/dev/Penn-Course-Review-api/api/django.wsgi'.
[Wed Nov 07 20:47:09 2012] [error] [client 158.130.107.158] Traceback (most recent call last):
[Wed Nov 07 20:47:09 2012] [error] [client 158.130.107.158]   File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/wsgi.py", line 219, in __call__
[Wed Nov 07 20:47:09 2012] [error] [client 158.130.107.158]     self.load_middleware()
[Wed Nov 07 20:47:09 2012] [error] [client 158.130.107.158]   File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 47, in load_middleware
[Wed Nov 07 20:47:09 2012] [error] [client 158.130.107.158]     raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
[Wed Nov 07 20:47:09 2012] [error] [client 158.130.107.158] ImproperlyConfigured: Error importing middleware api.apiconsumer.authenticate: "No module named api.apiconsumer.authenticate"

settings.py参考までに、ファイルの関連部分は次のとおりです。

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

INSTALLED_APPS = ( 
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'api.courses',
    'api.apiconsumer',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    'api.static_content',
    'django_extensions', # used for debugging, remove if problematic
    'django.contrib.staticfiles',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

そして、django.wsgiその価値のあるファイル。(注:ここにはカスタムのものがたくさんあります。)

import os,sys

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))

sys.path.append(PROJECT_PATH)


from sandbox_config import *

#Uncomment these two lines to use virtualenv
#activate_this = os.path.join(COURSESAPI_APP_ROOT, "ENV/bin/activate_this.py")
#execfile(activate_this, dict(__file__=activate_this))

sys.path.append(DEV_ROOT)
sys.path.append(COURSESAPI_APP_ROOT)

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

残念ながら、現時点では何を試してみるのかよくわかりません。エラーは非常に役に立ちません。

  • 問題の行を削除すると、次のカスタムミドルウェアがプログラムを壊し、パスの問題である可能性があると思います。
  • グーグルは助けの邪魔をしていないようです。

問題が何であるか、そして何を試す価値があるかについてのアイデアはありますか?

4

3 に答える 3

3

このファイルはどこにありますか(api/apiconsumer/authenticate.py

No module named api.apiconsumer.authenticate

見つかりました(このファイルへの絶対パスを教えてください)?

それは実際ににあり/home/davidxu/dev/Penn-Course-Review-api/api/apiconsumer/authenticate.pyますか?

wsgiプロセスのPYTHONPATHに関連して正しいファイルシステムパスにない場合、そのモジュールにコードをロードすることはできません。

また、「api」アプリはsettings.pyにリストされていますINSTALLED_APPSか?アプリとして「api」をリストしなかった場合、Djangoは「api.apiconsumer.authenticate」を検索することを認識しませんINSTALLED_APPS

編集済み

OPapiは、実際には彼のプロジェクトの名前であり、彼のアプリ名はですと私に知らせましたapiconsumer

だから私の応答は問題を解決しました:-

djangoプロジェクト名をアプリ名から明確に分離しておくことをお勧めします。したがってapiconsumer、INSTALLED_APPSでアプリ名として使用apiconsumer.authenticate.Authenticateし、MIDDLEWARE_CLASSESで使用します。

于 2012-11-08T02:05:07.490 に答える
1

次のファイルはありますか?

api/__init__.py
api/apiconsumer/__init__.py

そうでない場合は、api/apiconsumer/authenticate.py見つかりません。

また、とapiのプレフィックスから削除してみてください。だから、あなたは持っているでしょう:MIDDLEWARE_CLASSESINSTALLED_APPS

MIDDLEWARE_CLASSES = (
    ...
    'apiconsumer.authenticate.Authenticate',
)

INSTALLED_APPS = (
    ...
    'courses',
    'apiconsumer',
    'static_content',
    ...
)
于 2012-11-08T02:16:46.573 に答える
0

init .pyでインポートを使用しているときに、正しく構成されていませんでした。

症状は次のとおりです。-runserverは魅力として機能します-デプロイ中(apache / nginx + uwsgi)モジュールのインポートで多数のエラーが発生し、最終的にImproperlyConfiguredが発生します

解決策:すべてのinit.pyファイルを空のままにします。

于 2013-08-17T17:24:38.910 に答える