web-dev-qa-db-ja.com

Python Django:securityというモジュールはありません

Virtualenvを使用してUbuntuサーバーにプロジェクトをデプロイすると、このエラーが発生しました:

[17/Sep/2014 22:29:00] "GET / HTTP/1.1" 500 59
Traceback (most recent call last):
File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/home/zat42/myproject/monarch/env/local/lib/python2.7/site-packages/Django/contrib/staticfiles/handlers.py", line 64, in __call__
return self.application(environ, start_response)
File "/home/zat42/myproject/monarch/env/local/lib/python2.7/site-packages/Django/core/handlers/wsgi.py", line 168, in __call__
self.load_middleware()
File "/home/zat42/myproject/monarch/env/local/lib/python2.7/site-packages/Django/core/handlers/base.py", line 44, in load_middleware
mw_class = import_string(middleware_path)
File "/home/zat42/myproject/monarch/env/local/lib/python2.7/site-packages/Django/utils/module_loading.py", line 26, in import_string
module = import_module(module_path)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named security

なぜこのエラーが発生するのかわかりませんが、新規インストールで設定が正常に動作します...しかし、現在のプロジェクトをコピーすると、エラー500が発生しました。違う。

問題がどこにあるか本当にわからないので、もっとファイルが必要かどうか教えてください...

ありがとうございました。

22
Zat42

私は同じ問題に出会いました。 Finnaly、私はDjango 1.7.1を使用して1.8devで生成されたプロジェクトを実行しています。1.7.1に戻って、「Django.middleware.security.SecurityMiddleware」をsetting.py、それは大丈夫のようです。

46
Fox1978

だから、私は解決策を見つけました:

'Django.middleware.security.SecurityMiddleware'

この行は、settings.pyのMIDDLEWARE_CLASSESにあります。この行を削除すると、セキュリティモジュールに問題はなくなりますが、これは問題を解決する良い方法ではないと思います...この行はcrsfトークンなどと関連していると思います。

問題を修正する他のアイデアはありますか?

12
Zat42

私はこの同じ問題に出くわしました。私のマシンのバージョンのDjango-admin.pyを使用して、virtualenvにインストールされているプロジェクトではなく、Djangoプロジェクトを開始しました。最終的にsource bin/activate virtualenv内にDjangoをインストールした後、Django-adminコマンドを実行する前に再度。

8
iross

プロジェクトを別のPCから切り替えるときに同じ問題が発生しました。私は削除するオプションがあまり好きではなかったので

「Django.middleware.security.SecurityMiddleware」

新しいプロジェクトと新しいアプリを作成し、設定を手動で変更し、残りのファイルをコピーしたところ、うまくいきました:)

私はそれがプロジェクトの秘密鍵と関係があると推測しています。

1
Dave Fontes

以前にこのプロジェクトでvirtualenvを使用していた場合、次回このプロジェクトを使用するときに必ずアクティブにするようにしてくださいsource bin/activateまたはDjangoの適切なバージョンを使用していることを確認してください。

削除いくつかのミドルウェアが必要な場合は、何をしているかを確認する必要があります。

私のために働いたこれを使用してください

MIDDLEWARE_CLASSES = [
'Django.contrib.sessions.middleware.SessionMiddleware',
    'Django.middleware.common.CommonMiddleware',
    'Django.middleware.csrf.CsrfViewMiddleware',
    'Django.contrib.auth.middleware.AuthenticationMiddleware',
    'Django.contrib.messages.middleware.MessageMiddleware',
    'Django.middleware.clickjacking.XFrameOptionsMiddleware',
]
0
nite wolve

これはDjangoバージョン1.7.xでDjango 1.7.x以上のバージョンを使用して作成されたプロジェクトを開こうとするときに起こると思います

削除'Django.middleware.security.SecurityMiddleware'は役立ちますが、別の問題が発生します'session error' か何か

これを修正するには:

pip uninstall Django==1.7.x //your current version of Django installed
pip install Django==1.9.x //or version that is compatible with the project
0
Hendrik T