Django get_model()导致错误:无法导入名称设置

Django get_model()导致错误:无法导入名称设置,django,import,settings,importerror,Django,Import,Settings,Importerror,更新: Traceback (most recent call last): File ".../actstream/settings.py", line 7, in <module> MODELS[model.lower()] = model = get_model(*model.split('.')) File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 213, in g

更新:

Traceback (most recent call last):
  File ".../actstream/settings.py", line 7, in <module>
    MODELS[model.lower()] = model = get_model(*model.split('.'))
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 213, in get_model
    self._populate()
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 67, in _populate
    self.load_app(app_name)
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 88, in load_app
    models = import_module('.models', app_name)
  File ".../lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File ".../libs/actstream/models.py", line 12, in <module>
    from actstream import managers, settings as actstream_settings
ImportError: cannot import name settings
我尝试将
从actstream导入设置修改为actstream\u设置
将actstream.settings导入为actstream\u设置
,它告诉我:

AttributeError: 'module' object has no attribute 'settings'
actstream
应用程序中的
\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuupy
文件不是空的,这可能是它无法将
actstream/settings.py
导入为
actstream.settings
的原因吗

原始问题:

Traceback (most recent call last):
  File ".../actstream/settings.py", line 7, in <module>
    MODELS[model.lower()] = model = get_model(*model.split('.'))
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 213, in get_model
    self._populate()
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 67, in _populate
    self.load_app(app_name)
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 88, in load_app
    models = import_module('.models', app_name)
  File ".../lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File ".../libs/actstream/models.py", line 12, in <module>
    from actstream import managers, settings as actstream_settings
ImportError: cannot import name settings
我有一个正在工作的django项目。我从trunk安装了以下应用程序
actstream
,因为最新版本有错误:

将此应用加载到我的项目时,会引发以下异常:

Error: cannot import name settings
我已经验证了错误发生在
actstream/settings.py
中的第一个命令
get_model()
中,如下所示:

from django.conf import settings
from django.db.models import get_model
import sys

MODELS = {}
for model in getattr(settings, 'ACTSTREAM_ACTION_MODELS', ('auth.User',)):
    MODELS[model.lower()] = model = get_model(*model.split('.'))

MANAGER_MODULE = getattr(settings, 'ACTSTREAM_MANAGER',
    'actstream.managers.ActionManager')
a, j = MANAGER_MODULE.split('.'), lambda l: '.'.join(l)
MANAGER_MODULE = getattr(__import__(j(a[:-1]), {}, {}, [a[-1]]), a[-1])

USE_JSONFIELD = getattr(settings, 'ACTSTREAM_USE_JSONFIELD', False)
在这个例子中,
get\u model()
为什么会抛出一个关于无法加载
设置的错误

回溯:

Traceback (most recent call last):
  File ".../actstream/settings.py", line 7, in <module>
    MODELS[model.lower()] = model = get_model(*model.split('.'))
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 213, in get_model
    self._populate()
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 67, in _populate
    self.load_app(app_name)
  File ".../lib/python2.7/site-packages/django/db/models/loading.py", line 88, in load_app
    models = import_module('.models', app_name)
  File ".../lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File ".../libs/actstream/models.py", line 12, in <module>
    from actstream import managers, settings as actstream_settings
ImportError: cannot import name settings
回溯(最近一次呼叫最后一次):
文件“../actstream/settings.py”,第7行,在
MODELS[model.lower()]=model=get_model(*model.split('.'))
文件“../lib/python2.7/site packages/django/db/models/load.py”,第213行,在get_模型中
自我.()
文件“../lib/python2.7/site packages/django/db/models/load.py”,第67行,在
自加载应用程序(应用程序名称)
文件“../lib/python2.7/site packages/django/db/models/load.py”,第88行,在load_应用程序中
模型=导入模块('.models',应用程序名称)
文件“../lib/python2.7/site packages/django/utils/importlib.py”,第35行,在导入模块中
__导入(名称)
文件“../libs/actstream/models.py”,第12行,在
从actstream导入管理器中,设置为actstream\u设置
导入错误:无法导入名称设置

现在我注意到models.py中发生了导入错误,但我仍然不明白它如何无法将settings.py文件导入为actstream.settings。

请发布完整的回溯?添加了回溯。我不明白导入语句是如何失败的。这似乎是由循环导入引起的
settings.py
通过get_model()函数导入
models.py
,然后再次导入
settings.py
。此处颁发给作者的票证: