ImportError:在Django 1.10中导入wsgi文件时无法导入名称信号

时间:2017-03-06 11:55:03

标签: python django django-wsgi

尝试使用apache运行Django时出现以下错误:

mod_wsgi (pid=3294): Target WSGI script '/www/cocurate2_dev/startup.wsgi' cannot be loaded as Python module.
mod_wsgi (pid=3294): Exception occurred processing WSGI script '/www/cocurate2_dev/startup.wsgi'.
Traceback (most recent call last):
  File "/www/cocurate2_dev/startup.wsgi", line 3, in <module>
    from django.core.wsgi import get_wsgi_application
  File "/www/cocurate2_dev/components/lib/python2.7/site-packages/django/core/wsgi.py", line 2, in <module>
    from django.core.handlers.wsgi import WSGIHandler
  File "/www/cocurate2_dev/components/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 10, in <module>
    from django import http
  File "/www/cocurate2_dev/components/lib/python2.7/site-packages/django/http/__init__.py", line 5, in <module>
    from django.http.response import (
  File "/www/cocurate2_dev/components/lib/python2.7/site-packages/django/http/response.py", line 13, in <module>
    from django.core.serializers.json import DjangoJSONEncoder
  File "/www/cocurate2_dev/components/lib/python2.7/site-packages/django/core/serializers/__init__.py", line 23, in <module>
    from django.core.serializers.base import SerializerDoesNotExist
  File "/www/cocurate2_dev/components/lib/python2.7/site-packages/django/core/serializers/base.py", line 4, in <module>
    from django.db import models
  File "/www/cocurate2_dev/components/lib/python2.7/site-packages/django/db/models/__init__.py", line 4, in <module>
    from django.db.models import signals  # NOQA
ImportError: cannot import name signals

使用manage.py runserver时,一切正常。我已经将wsgi文件更新为与django 1.10中的默认文件相同。 我已经检查过django里面的signals.py,我也清理过.pyc文件。

2 个答案:

答案 0 :(得分:0)

事实证明,由于各种原因,django安装中实际上缺少一个文件,它只是不是signal.py而是导入的东西。 您可以通过使用-v或-vv开关运行python来调试输出详细信息来调试此类问题。我能够看到它试图从signals.py导入另一个文件。

答案 1 :(得分:0)

当我的Django 1.10安装被第三方降级到Django 1.6时,出现了此错误。 删除它并重新安装正确版本的Django后,一切都像冠军一样工作。