title: TemplateDoesNotExist at /
body: <p>Hej! Many threads here had the same caption, but none of them solved my problem. I have a Django site an can access /admin (but it looks ugly). But on / there appears the following error page (<code>DEBUG = True</code> in <code>settings.py</code>):</p>
  
  <pre><code>TemplateDoesNotExist at /
  
  index.html
  
  Request Method:     GET  
  Request URL:    http://iecl.uni-potsdam.de/  
  Django Version:     1.4.5  
  Exception Type:     TemplateDoesNotExist  
  Exception Value:    
  
  index.html
  
  Exception Location:     /usr/lib/python2.7/dist-packages/django/template/loader.py in find_template, line 138  
  Python Executable:  /usr/bin/python  
  Python Version:     2.7.3  
  Python Path:    
  
  ['/home/python/iecl/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg',  
   '/home/python/iecl/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg',  
   '/usr/lib/python2.7',  
   '/usr/lib/python2.7/plat-linux2',  
   '/usr/lib/python2.7/lib-tk',  
   '/usr/lib/python2.7/lib-old',  
   '/usr/lib/python2.7/lib-dynload',  
   '/usr/local/lib/python2.7/dist-packages',  
   '/usr/lib/python2.7/dist-packages',  
   '/usr/lib/pymodules/python2.7',  
   '/home/python/iecl/lib/python2.7/site-packages',  
   '/home/django/django']
  
  Server time:    Mon, 7 Apr 2014 11:28:46 +0200  
  Template-loader postmortem
  
  Django tried loading these templates, in this order:
  
      Using loader django.template.loaders.filesystem.Loader:  
          /home/django/django/templates/iecl_dev/index.html (File does not exist)  
      Using loader django.template.loaders.app_directories.Loader:  
          /usr/lib/python2.7/dist-packages/django/contrib/auth/templates/index.html (File does not exist)  
          /usr/lib/python2.7/dist-packages/django/contrib/admin/templates/index.html (File does not exist)
  </code></pre>
  
  <p>In fact, the file /home/django/django/templates/iecl_dev/index.html does exist and I also tried <code>chmod o+r index.html</code> without success.</p>
  
  <p>The output of <code>python iecl_dev/manage.py runserver 0.0.0.0:0</code> is</p>
  
  <pre><code>Validating models...
  
  0 errors found  
  Django version 1.4.5, using settings 'iecl_dev.settings'  
  Development server is running at http://0.0.0.0:0/  
  Quit the server with CONTROL-C.
  </code></pre>
  
  <p>so everything seems fine here.</p>
  
  <p>What perplexes me: The *.pyc files are created automatically when *.py files are run, right? After <code>python iecl_dev/manage.py runserver 0.0.0.0:0</code> there is a file <code>/home/django/django/iecl_dev/settings.pyc</code> created. But it is not created, when I load the page in my web browser. Does that mean, the settings.py is never loaded? And how can Django say, a file, which exists, would not exist?</p>
  
  <p>Edit¹:<br>
  My settings.py looks as follows:</p>
  
  <pre><code>import django.conf.global_settings as DEFAULT_SETTINGS
  import os
  DEBUG = True
  TEMPLATE_DEBUG = DEBUG
  
  ADMINS = (
  )
  
  SETTINGS_PATH = os.path.realpath(os.path.dirname(__file__))
  
  MANAGERS = ADMINS
  DATABASES = {                                                                                                                                                          $
      'default': {                                                                                                                                                       $
          'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
          'NAME': 'iecl',                      # Or path to database file if using sqlite3.
                  'USER': 'iecl',                      # Not used with sqlite3.
          'PASSWORD': '&lt;xxx&gt;',                  # Not used with sqlite3.
          'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.                                                                   $
          'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
      }
  }
  TIME_ZONE = 'Europe/Berlin'
  
  LANGUAGE_CODE = 'en-us'
  
  SITE_ID = 1
  
  USE_I18N = True
  
  MEDIA_ROOT = '/var/www/django_media/iecl_dev/media/'
  MEDIA_URL = ''
  
  ADMIN_MEDIA_PREFIX = '/media/admin_media/'
  
  SECRET_KEY = '&lt;xxx&gt;'
  
  TEMPLATE_LOADERS = (
      'django.template.loaders.filesystem.Loader',
      'django.template.loaders.app_directories.Loader',
  )
  
  MIDDLEWARE_CLASSES = (
          'django.middleware.csrf.CsrfViewMiddleware',
          'django.middleware.common.CommonMiddleware',
      'django.contrib.sessions.middleware.SessionMiddleware',
      'django.contrib.auth.middleware.AuthenticationMiddleware',
          'django.contrib.messages.middleware.MessageMiddleware',
  )
  
  ROOT_URLCONF = 'iecl_dev.urls'
  
  TEMPLATE_DIRS = (
          os.path.join(SETTINGS_PATH, 'templates'),
  )
  INSTALLED_APPS = (
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.sites',
          'iecl_dev.showStudents',
          'django.contrib.admin',
  )
  
  TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
  )
  </code></pre>
  
  <p>Edit²:  </p>
  
  <pre><code>The contents of `/home/django/django/` are as follows:
  
  /home/django/django/:
  iecl2
  iecl_dev
  templates
  
  /home/django/django/iecl2:
  __init__.py
  __init__.pyc
  manage.py
  settings.py
  settings.pyc
  showStudents
  urls.py
  urls.pyc
  
  /home/django/django/iecl2/showStudents:
  __init__.py
  __init__.pyc
  admin.py
  context_processors.py
  models.py
  models.pyc
  views.py
  views.pyc
  
  /home/django/django/iecl_dev:
  __init__.py
  __init__.pyc
  manage.py
  piwik
  settings.py
  settings.pyc
  showStudents
  urls.py
  urls.pyc
  
  /home/django/django/iecl_dev/piwik:
  __init__.py
  app_settings.py
  context_processors.py
  models.py
  tests.py
  urls.py
  views.py 
  
  /home/django/django/iecl_dev/showStudents:
  __init__.py
  __init__.pyc
  admin.py
  context_processors.py
  models.py
  models.pyc
  views.py
  
  /home/django/django/templates:
  iecl
  iecl_dev
  /home/django/django/templates/iecl:
  500.html
  admin
  changePW.html
  editStudent.html
  feedback.html
  feedback_thanks.html
  index.html
  location.html
  login.html
  page.html
  password_changed.html
  showStudent.html
  studentsOverview.html
  
  /home/django/django/templates/iecl/admin:
  404.html
  500.html
  actions.html
  app_index.html
  auth
  base.html
  base_site.html
  change_form.html
  change_list.html
  change_list_results.html
  date_hierarchy.html
  delete_confirmation.html
  delete_selected_confirmation.html
  edit_inline
  filter.html
  includes
  index.html
  invalid_setup.html
  login.html
  object_history.html
  pagination.html
  prepopulated_fields_js.html
  search_form.html
  showStudents
  submit_line.html
  
  /home/django/django/templates/iecl/admin/auth:
  user
  
  /home/django/django/templates/iecl/admin/auth/user:
  add_form.html
  change_password.html
  
  /home/django/django/templates/iecl/admin/edit_inline:
  stacked.html
  tabular.html
  
  /home/django/django/templates/iecl/admin/includes:
  fieldset.html
  
  /home/django/django/templates/iecl/admin/showStudents:
  pagecontent
  userpagecontent
  
  /home/django/django/templates/iecl/admin/showStudents/pagecontent:
  change_form.html
  
  /home/django/django/templates/iecl/admin/showStudents/userpagecontent:
  change_form.html
  
  /home/django/django/templates/iecl_dev:
  500.html
  __init__.py
  admin
  changePW.html
  editStudent.html
  feedback.html
  feedback_thanks.html
  index.html
  location.html
  login.html
  page.html
  password_changed.html
  piwik
  showStudent.html
  studentsOverview.html
  
  /home/django/django/templates/iecl_dev/admin:
  404.html
  500.html
  actions.html
  app_index.html
  auth
  base.html
  base_site.html
  change_form.html
  change_list.html
  change_list_results.html
  date_hierarchy.html
  delete_confirmation.html
  delete_selected_confirmation.html
  edit_inline
  filter.html
  includes
  index.html
  invalid_setup.html
  login.html
  object_history.html
  pagination.html
  prepopulated_fields_js.html
  search_form.html
  showStudents
  submit_line.html
  
  /home/django/django/templates/iecl_dev/admin/auth:
  user
  
  /home/django/django/templates/iecl_dev/admin/auth/user:
  add_form.html
  change_password.html
  
  /home/django/django/templates/iecl_dev/admin/edit_inline:
  stacked.html
  tabular.html
  
  /home/django/django/templates/iecl_dev/admin/includes:
  fieldset.html
  
  /home/django/django/templates/iecl_dev/admin/showStudents:
  pagecontent
  userpagecontent
  
  /home/django/django/templates/iecl_dev/admin/showStudents/pagecontent:
  change_form.html
  
  /home/django/django/templates/iecl_dev/admin/showStudents/userpagecontent:
  change_form.html
  
  /home/django/django/templates/iecl_dev/piwik:
  tracking.html
  </code></pre>
  
  <p>Edit³:<br>
  Ok. This is solved for me now. The solution was a conglomerate of different things. One of the problems was the missing rights. The user that executes Django, could not list the contents of the templates/ directory. <code>chmod o+x templates/</code> did the job. Then there were some settings in the settings.py, that changed the place to look for the templates from templates/iecl_dev/ to iecl_dev/templates/. I saw this wrong path in the error message in my web browser. But simply reverting the settings.py to the old version, was not enough. Some service(s) needed to be restarted. I simply rebooted the machine and everything was fine. Miraculously, the /admin/ page now looks nice as well.</p>
  
  <p>Many thanks for all your tips.</p>