2010-01-22 38 views
2

我一直在Python2.5上用syncdb构建数据库的时间很困难。 我认为这个问题的一些是因为使用通配符*来导入forum.models它似乎在创建一个循环。有人可以帮助澄清我对syncdb和导入循环的困惑,'你必须明确进口吗?'

>>> import settings 
>>> from forum.managers import QuestionManager, TagManager, AnswerManager, VoteManager, FlaggedItemManager, ReputeManager, AwardManager 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/home/username/webapps/username/sousvide_app/forum/managers.py", line 6, in <module> 
    from forum.models import * 
    File "/home/username/webapps/username/sousvide_app/forum/models.py", line 18, in <module> 
    from forum.managers import QuestionManager, TagManager, AnswerManager, VoteManager, FlaggedItemManager, ReputeManager, AwardManager 
ImportError: cannot import name QuestionManager 
>>> from forum.models import Question, Tag 
>>> from forum.managers import QuestionManager, TagManager, AnswerManager, VoteManager, FlaggedItemManager, ReputeManager, AwardManager 
>>> import sys, pprint 
>>> pprint.pprint(sys.path) 
['/home/username/webapps/username/sousvide_app', 
'/home/username/webapps/username/lib/python2.5', 
'/home/username/lib/python2.5/markdown2-1.0.1.16-py2.5.egg', 
'/home/username/lib/python2.5/html5lib-0.11.1-py2.5.egg', 
'/home/username/lib/python2.5', 
'/usr/local/lib/python25.zip', 
'/usr/local/lib/python2.5', 
'/usr/local/lib/python2.5/plat-linux2', 
'/usr/local/lib/python2.5/lib-tk', 
'/usr/local/lib/python2.5/lib-dynload', 
'/usr/local/lib/python2.5/site-packages', 
'/usr/local/lib/python2.5/site-packages/PIL'] 
>>> from settings import INSTALLED_APPS 
>>> pprint.pprint(INSTALLED_APPS) 
('sousvide_app.forum', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.admin', 
'django.contrib.humanize', 
'django_authopenid') 

我对另一个同样的问题安装,我是能够通过明确从forum.managers导入经理来解决。
正如你所看到的,如果我将问题和标签模型加载到命名空间中,我可以在shell中导入管理器。

我做出了从forum.models导入*明确:
从forum.models导入问题,标签

不过,我仍然无法执行syncdb。当我尝试输出SQL时,找不到APP。
$ python2.5 manage.py sql论坛
错误:无法找到带有标签论坛的应用程序。你确定你的INSTALLED_APPS设置是正确的吗?

任何人都可以给我一个想法是什么问题?
是否有可能导致此错误的Python2.5?

+0

我突然发生同样的错误。哼。 – jMyles 2011-02-03 02:22:31

回答

0

除了settings.py之外,您是否正在使用global_settings.pylocal_settings.py

导入Django设置的正确方法是使用解耦对象from django.conf import settings而不是import settings。请看这里的文档页面:Using settings in Python code

我不能肯定地说,如果这是对您的问题的修复,但它是朝正确的方向迈出的一步,以确保您的设置正确加载,如果你说你的问题应用程序未显示在INSTALLED_APPS中。

+0

我正在使用local_settings.py导入webhost_settings.py,它包含INSTALLED_APPS元组,因为它需要包含app_name.forum。我试着将INSTALLED_APPS移到settings.py,我仍然不能syncdb。 – BryanWheelock 2010-01-23 17:27:22

相关问题