シナリオは、
OpenShift-V3のDjangoコードを here から複製しました。 python manage.py runserver
を使用してコードを実行すると、エラーが発生し、
Django.core.exceptions.ImproperlyConfigured:WSGIアプリケーション 'application'をロードできませんでした。モジュールのインポートエラー: 'アプリケーションがモジュールパスのように見えません
コードには何も追加せず、必要なパッケージはすでに満たされています。
Django-ex/project/settings.pyに移動します
settings.pyの行を次のように変更します
WSGI_APPLICATION = 'application'
toWSGI_APPLICATION = 'wsgi.application'
それでおしまい :(
私はミドルウェアCorsMiddlewareを使用しましたが、インストールを忘れたため、インストール後に完全に機能します。
django-cors-headersをpipインストールします。
そのようなものをチェックすると、そのようなものを見逃す可能性があります。
Djangoプロジェクトをローカルで開発のために実行する場合は、settings.pyモジュールからWSGI_APPLICATION変数を削除するだけです。たとえば、settings_prod.pyなどのprod/stage設定で必要です。
settings.pyファイルで次のように変更します。
WSGI_APPLICATION = 'your_project_name.wsgi.application'
それを削除し、問題が解消するかどうかを確認します。考えられる発生:
pip uninstall Django-debug-toolbar INSTALLED_APPS = ... 'debug_toolbar'、 ... MIDDLEWARE = ... 'debug_toolbar.middleware.DebugToolbarMiddleware'、 ...
wsgiアプリケーションを開始する前にモジュールをインポートする際にエラーが発生すると、このメッセージも表示されるので、まずトレースを確認し、問題を修正する上から始めてください。
Djangoアプリをpython 2.7からpython3に移植し、この問題に直接接続されていないあらゆる種類のモジュールインポートの問題を追加しました。
注意深く読むと、「上記の例外は次の例外の直接の原因でした...」と表示される場合があります。そして、「上記の例外」は、ホワイトホースをインストールするのを忘れたことです。 pip install whitenoise
を実行すると、うまくいきました。
私はDjango-cors-headersを使用していたので、自分のプロジェクトにcorsを実装していないと思ったので、Django-cors-middlewareのインストールに進んだところ、wsgi例外が発生し始めたので、スタックトレースを確認したところ、 Django-cors-headersとDjango-cors-middlewareが競合していることがわかります。 Django-cors-middlewareをアンインストールする必要がありましたが、それでも同じ例外が発生するため、Django-cors-headersもアンインストールしてから再インストールすると、すべてが正常に動作します。