views:

137

answers:

1

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?

A: 

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

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.

T. Stone
I am using local_settings.py that imports webhost_settings.py, which contains the INSTALLED_APPS tuple because it needs to include app_name.forum . I tried to move INSTALLED_APPS to settings.py and I still can't syncdb.
BryanWheelock