Can someone help clarify my confusion about syncdb and import loops, 'Do you have to be explicit on imports?'
Question: I have been having a difficult time building the database with syncdb on
Python2.5. I think that some of this issue is because of the use of wildcard*
for importing forum.models it seems to be creating a loop.

    
    
    >>> 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')  
    

I had the same issue on another install that I was able to fix by explicitly
importing the managers from forum.managers .  
As you can see, if I load Question and Tag models into the namespace I'm able
to import the managers in the shell.

I made the from forum.models import * explicit:  
from forum.models import Question, Tag

However, I'm still not able to syncdb. When I try to output the SQL the APP
can't be found.  
$ python2.5 manage.py sql forum  
Error: App with label forum could not be found. Are you sure your
INSTALLED_APPS setting is correct?

Can anyone give me an idea what is going wrong?  
Is there something about Python2.5 that could contribute to this error?


Answer: Would you happen to be using `global_settings.py` or `local_settings.py` in
addition to `settings.py`?

The proper way to import Django's settings is to use the decoupled object
`from django.conf import settings`, NOT to `import settings`. See the doc page
about it here: [Using settings in Python
code](http://docs.djangoproject.com/en/dev/topics/settings/#using-settings-in-
python-code)

I can't say for certain if that's the fix to your problem, but it's a step in
the right direction to make sure your settings are being loaded properly if
you say your issue is apps not showing up in `INSTALLED_APPS`.

