Tutorial :Settings module not found deploying django on a shared server



Question:

I'm trying to deploy my django project on a shared hosting as describe here

I have my project on /home/user/www/testa

I'm using this script

  #!/usr/bin/python  import sys, os    sys.path.append("/home/user/bin/python")    sys.path.append('/home/user/www/testa')      os.chdir("/home/user/www/testa")    os.environ['DJANGO_SETTINGS_MODULE'] = "settings.py"    from django.core.servers.fastcgi import runfastcgi  runfastcgi(method="threaded", daemonize="false")    

And here's the error I get when trying to run it from shell:

  WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!  WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!  WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!  WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!  Traceback (most recent call last):    File "build/bdist.linux-i686/egg/flup/server/fcgi_base.py", line 558, in run    File "build/bdist.linux-i686/egg/flup/server/fcgi_base.py", line 1118, in handler    File "/home/user/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 230, in __call__      self.load_middleware()    File "/home/user/lib/python2.4/site-packages/django/core/handlers/base.py", line 33, in load_middleware      for middleware_path in settings.MIDDLEWARE_CLASSES:    File "/home/user/lib/python2.4/site-packages/django/utils/functional.py", line 269, in __getattr__      self._setup()    File "/home/usr/lib/python2.4/site-packages/django/conf/__init__.py", line 40, in _setup      self._wrapped = Settings(settings_module)    File "/home/user/lib/python2.4/site-packages/django/conf/__init__.py", line 75, in __init__      raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)  ImportError: Could not import settings 'settings.py' (Is it on sys.path? Does it have syntax errors?): No module named settings.py  Content-Type: text/html        Unhandled Exception    

Unhandled Exception

An unhandled exception was thrown by the application.

What am I doing wrong?

Running the script from the browser just gives me an internal server error.


Solution:1

The line

os.environ['DJANGO_SETTINGS_MODULE'] = "settings.py"  

should be more like

os.environ['DJANGO_SETTINGS_MODULE'] = "settings"  

based on how you're setting up sys.path. That environment variable is supposed to contain the path to the module as it should be imported by Python, not the actual filename of the module.

Basically, the way you've got it now is making Django do something like this internally:

import settings.py  

I.e., it's trying to import a py module from inside a settings module.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »