#!/usr/bin/env python import os import site import sys ROOT = os.path.dirname(os.path.abspath(__file__)) path = lambda *a: os.path.join(ROOT, *a) prev_sys_path = list(sys.path) site.addsitedir(path('apps')) site.addsitedir(path('lib')) site.addsitedir(path('vendor')) # Move the new items to the front of sys.path. new_sys_path = [] for item in list(sys.path): if item not in prev_sys_path: new_sys_path.append(item) sys.path.remove(item) sys.path[:0] = new_sys_path # Now we can import from third-party libraries. from django.core.management import execute_manager, setup_environ try: import settings_local as settings except ImportError: try: import settings # Assumed to be in the same directory. except ImportError: import sys sys.stderr.write( "Error: Tried importing 'settings_local.py' and 'settings.py' " "but neither could be found (or they're throwing an ImportError)." " Please come back and try again later.") raise # The first thing execute_manager does is call `setup_environ`. Logging config # needs to access settings, so we'll setup the environ early. setup_environ(settings) # Monkey patch django's csrf import session_csrf session_csrf.monkeypatch() # Import for side-effect: configures our logging handlers. import log_settings if __name__ == "__main__": execute_manager(settings)