web-dev-qa-db-fra.com

Python Django: Aucun module nommé sécurité

Lorsque je déploie mon projet sur un serveur Ubuntu à l'aide d'un serveur virtuel, j'ai l'erreur suivante:

[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

Je ne sais pas pourquoi il y a cette erreur, ma configuration fonctionne correctement avec une nouvelle installation ... Mais quand je copie mon projet actuel, j'ai l'erreur 500. J'ai essayé de déployer "une partie après l'autre" mais je ne trouve pas ce qu'il y a à dire. faux.

Dites-moi si vous avez besoin de plus de mes fichiers parce que je ne sais pas vraiment où est le problème ...

Je vous remercie.

22
Zat42

J'ai rencontré le même problème. Enfin, j’ai découvert que j’utilisais Django 1.7.1 pour exécuter un projet généré par 1.8dev. Lorsque je reviens à la version 1.7.1 et que je supprime ‘Django.middleware.security.SecurityMiddleware’ dans setting.py, cela semble correct.

46
Fox1978

J'ai donc trouvé une solution:

'Django.middleware.security.SecurityMiddleware'

Cette ligne est dans MIDDLEWARE_CLASSES, à partir de settings.py . Lorsque je supprime cette ligne, je n'ai plus de problèmes avec le module de sécurité, mais je suppose que ce n'est pas un bon moyen de résoudre le problème ... Je suppose que cette ligne est en relation avec le jeton crsf et des choses comme ça.

Une autre idée pour résoudre le problème?

12
Zat42

J'ai rencontré ce même problème. Il s'est avéré que j'utilisais par inadvertance la version de Django-admin.py de ma machine pour démarrer mon projet Django, plutôt que celui installé dans virtualenv. J'ai fini par devoir à nouveau source bin/activate après avoir installé Django dans virtualenv, avant d'exécuter les commandes Django-admin.

8
iross

J'ai eu le même problème lors du changement de projet d'un autre ordinateur. Comme je n’aimais pas beaucoup l’option donnée pour enlever le 

'Django.middleware.security.SecurityMiddleware'

Je viens de créer un nouveau projet et une nouvelle application, de modifier les paramètres à la main et de copier le reste des fichiers, et cela a fonctionné :)

Je suppose que cela a quelque chose à voir avec la clé secrète du projet.

1
Dave Fontes

Si vous avez déjà utilisé un virtualenv pour ce projet, assurez-vous de l'activer pour la prochaine fois que vous utiliserez ce projet source bin/activate ou vérifiez que vous utilisez la version appropriée de Django.

Si vous voulez supprimer certains middlewares, vous devez vous assurer de ce que vous faites.

1

utilise ça a fonctionné pour moi

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

Je suppose que cela se produit dans la version 1.7.x de Django lorsque vous essayez d’ouvrir un projet créé avec une version supérieure à la version 1.7.x

supprimer 'Django.middleware.security.SecurityMiddleware' aide mais crée un autre problème 'session error' ou quelque chose comme ça

pour résoudre ce problème:

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