title: Upgrade to Django 1.7 - AppRegistryNotReady exception
body: <p>I'm struggling by trying to make things work after upgrading the Django version from 1.6.7 to 1.7. It looks like I'm not able to focus on the right matter. I try to resume the situation so far.</p>
  
  <p>Thing is: if I leave the command django.setup() in my wsgi.py file, when I try to access my website I get an internal server error (500). Looking at the logs, I get:</p>
  
  <pre><code>[Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1] mod_wsgi (pid=23258): Target WSGI script '/home/thrasher/webapps/django/myproject.wsgi' cannot be loaded as Python module.
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1] mod_wsgi (pid=23258): Exception occurred processing WSGI script '/home/thrasher/webapps/django/myproject.wsgi'.
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1] Traceback (most recent call last):
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]   File "/home/thrasher/webapps/django/myproject.wsgi", line 16, in &lt;module&gt;
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]     application = get_wsgi_application()
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]   File "/home/thrasher/webapps/django/lib/python2.7/django/core/wsgi.py", line 14, in get_wsgi_application
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]     django.setup()
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]   File "/home/thrasher/webapps/django/lib/python2.7/django/__init__.py", line 21, in setup
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]     apps.populate(settings.INSTALLED_APPS)
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]   File "/home/thrasher/webapps/django/lib/python2.7/django/apps/registry.py", line 78, in populate
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1]     raise RuntimeError("populate() isn't reentrant")
  [Sun Oct 12 12:38:50 2014] [error] [client 127.0.0.1] RuntimeError: populate() isn't reentrant
  </code></pre>
  
  <p>However, if I comment the django.setup() call, trying to access the website gets me this stack trace:</p>
  
  <pre><code>Environment:
  
  
  Request Method: GET
  Request URL: http://www.creepyvisions.it/
  
  Django Version: 1.7
  Python Version: 2.7.8
  Installed Applications:
  ('django.contrib.auth',
   'django.contrib.admin.apps.SimpleAdminConfig',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.sites',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'django.contrib.admin',
   'django.contrib.admindocs',
   'myproject.archivio',
   'sorl.thumbnail',
   'django.contrib.sitemaps',
   'rest_framework')
  Installed Middleware:
  ('django.middleware.common.CommonMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware')
  
  
  Traceback:
  File "/home/thrasher/webapps/django/lib/python2.7/django/core/handlers/base.py" in get_response
    98.                 resolver_match = resolver.resolve(request.path_info)
  File "/home/thrasher/webapps/django/lib/python2.7/django/core/urlresolvers.py" in resolve
    338.             for pattern in self.url_patterns:
  File "/home/thrasher/webapps/django/lib/python2.7/django/core/urlresolvers.py" in url_patterns
    367.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/thrasher/webapps/django/lib/python2.7/django/core/urlresolvers.py" in urlconf_module
    361.             self._urlconf_module = import_module(self.urlconf_name)
  File "/usr/local/lib/python2.7/importlib/__init__.py" in import_module
    37.     __import__(name)
  File "/home/thrasher/webapps/django/myproject/urls.py" in &lt;module&gt;
    33.                        url(r'^admin/', include(admin.site.urls)),
  File "/home/thrasher/webapps/django/lib/python2.7/django/contrib/admin/sites.py" in urls
    260.         return self.get_urls(), self.app_name, self.name
  File "/home/thrasher/webapps/django/lib/python2.7/django/contrib/admin/sites.py" in get_urls
    221.             self.check_dependencies()
  File "/home/thrasher/webapps/django/lib/python2.7/django/contrib/admin/sites.py" in check_dependencies
    159.         if not apps.is_installed('django.contrib.admin'):
  File "/home/thrasher/webapps/django/lib/python2.7/django/apps/registry.py" in is_installed
    223.         self.check_apps_ready()
  File "/home/thrasher/webapps/django/lib/python2.7/django/apps/registry.py" in check_apps_ready
    124.             raise AppRegistryNotReady("Apps aren't loaded yet.")
  
  Exception Type: AppRegistryNotReady at /
  Exception Value: Apps aren't loaded yet.
  </code></pre>
  
  <p>For the sake of completion, this is the code related to wsgi:</p>
  
  <p>myprojext.wsgi</p>
  
  <pre><code>import os
  import sys
  
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
  
  from django.core.wsgi import get_wsgi_application
  application = get_wsgi_application()
  </code></pre>
  
  <p>wgsi.py</p>
  
  <pre><code>import django
  from django.core.handlers.wsgi import WSGIHandler
  
  
  def get_wsgi_application():
      #django.setup()
      return WSGIHandler()
  </code></pre>
  
  <p>Things look very odd to me, I performed a lot of searches in the official Django docs and in various forums, but I'm still unable to get things work properly. Any suggestions would be much appreciated.</p>