| 
					
				 | 
			
			
				@@ -1,3 +1,4 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import os 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.loaders.djangoapp import Loader as DjangoLoader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.loaders.default import Loader as DefaultLoader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.conf import settings 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13,12 +14,18 @@ Loader = DefaultLoader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if settings.configured: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Loader = DjangoLoader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # We might still be running celery with django, because worker processes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # spawned with celery running through manage.py, will not have had their 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # django environment set up 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if callable(getattr(os, "fork", None)): # Platform doesn't support fork() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # XXX On systems without fork, multiprocessing seems to be launching 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # the processes in some other way which does not copy the memory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # of the parent process. This means that any configured env might 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # be lost. This is a hack to make it work on Windows. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # A better way might be to use os.environ to set the currently 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # used configuration method so to propogate it to the "child" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # processes. But this has to be experimented with. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # [asksol/heyman] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        # If we can import 'settings', assume we're running celery with django 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        import settings as project_settings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        settings_mod = os.environ.get("DJANGO_SETTINGS_MODULE", "settings") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        project_settings = __import__(settings_mod, {}, {}, ['']) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         setup_environ(project_settings) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Loader = DjangoLoader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     except ImportError: 
			 |