﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
10341	Project module loaded twice	rginda@…	nobody	"I have some initialization code in my project's {{{__init__.py}}} (the one from the same directory as settings.py), and I've notice that it's executed *twice* for each thread.  I added the following lines to my {{{__init__.py}}}...
{{{
  print ""*** thread: %s, %s"" % (thread.get_ident(), __name__)
  traceback.print_stack()
}}}
And found...
{{{
$ ~/dist/mark1/bin/mark1-django-ctl.sh runserver ginda1:8080
*** thread: -1208932672, mark1
  File ""manage.py"", line 6, in <module>
    import mark1.settings
  File ""/home/au/au10010/dist/mark1/django/mark1/__init__.py"", line 53, in <module>
    traceback.print_stack()
*** thread: -1208932672, mark1.
  File ""manage.py"", line 14, in <module>
    execute_manager(mark1.settings)
  File ""/opt/ark/sw/python2.6/lib/python2.6/site-packages/django/core/management/__init__.py"", line 338,
 in execute_manager
  File ""/opt/ark/sw/python2.6/lib/python2.6/site-packages/django/core/management/__init__.py"", line 316,
 in setup_environ
  File ""/home/au/au10010/dist/mark1/django/mark1/__init__.py"", line 53, in <module>
    traceback.print_stack()
}}}
It seems like it's loaded for the first time when manage.py loads the settings file, and second time from <http://code.djangoproject.com/browser/django/trunk/django/core/management/__init__.py#L331>.

Notice that the second time it's loaded, the module is called 'mark1.', rather than just 'mark1'.  If I switch the management code to...
{{{
    __import__(project_name)
    project_module = sys.modules[project_name]
}}}
...then my module is only loaded once."		closed	Uncategorized	1.0		duplicate			Unreviewed	0	0	0	0	0	0
