【问题标题】:ImportError: cannot import name signals when importing wsgi file in Django 1.10ImportError:在 Django 1.10 中导入 wsgi 文件时无法导入名称信号
【发布时间】:2017-07-26 06:52:08
【问题描述】:

我在尝试使用 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 文件。

【问题讨论】:

标签: python django django-wsgi


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 2019-08-27
      • 2016-09-07
      • 2018-11-15
      相关资源
      最近更新 更多