I have two model classes in my models.py module in the default location.
PythonFinal
|_ manage.py
|_ template
|_ PythonFinal
| |_ __init__.py
| |_ settings.py
| |_ urls.py
| |_ swgi.py
|
|
|___ fertility
|_ __init__.py
|_ models.py
|_ tests.py
|_ views.py
|_ dateUtils.py
I simply want to import the classes into dateUtils.py
from fertility.models import Cycle, Period
if __name__ == '__main__':
p1 = Period(periodFirstDay='2012-7-26' , periodNumber=4)
If I run this module I get
ImportError: no module named fertility
If I try to import models from the python commandline I get
import models
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "models.py", line 1, in <module>
from django.db import models
File "/usr/local/lib/python2.6/dist-packages/django/db/__init__.py", line 11, in <module>
if DEFAULT_DB_ALIAS not in settings.DATABASES:
File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 184, in inner
self._setup()
File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
I added my projects root folder to the PYTHONPATH in ~/.bashrc. My wsgi.py reads
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PythonFinal.settings")
I do not think it is not a circular import because I get the ImportError instead of a NamingError, and I simply don't have many imports yet. For obvious reasons I need to be able to import my model to other modules I can unit test or I need another simple workflow that accomplishes the same.