I deployed Django to Apache via mod_wsgi . Django works great when hosted on Apache. However, I try to do some maintenance with manage.py , but when I try to start it, I get an error message:
Error: failed to import settings "myproject.settings" (is it on sys.path?): Not a single module with settings
user@localhost:~$ cd /usr/local/myproject user@localhost:/usr/local/myproject$ ls drwxr-xr-x 2 apache apache 4096 2011-09-07 19:38 apache -rw-r--r-- 1 apache apache 0 2011-05-25 14:52 __init__.py -rw-r--r-- 1 apache apache 813 2011-09-09 16:56 manage.py drwxr-xr-x 6 apache apache 4096 2011-09-09 16:43 myapp -rw-r--r-- 1 apache apache 4992 2011-09-07 19:31 settings.py drwxr-xr-x 4 apache apache 4096 2011-09-08 20:32 templates -rw-r--r-- 1 apache apache 1210 2011-09-08 14:49 urls.py
Django seems to be ignoring the DJANGO_SETTINGS_MODULE environment variable.
user@localhost:~$ cd /usr/local/myproject user@localhost:/usr/local/myproject$ export DJANGO_SETTINGS_MODULE=settings user@localhost:/usr/local/myproject$ python manage.py shell Error: Could not import settings 'myproject.settings' (Is it on sys.path?): No module named settings user@localhost:/usr/local/myproject$ python Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import settings >>>
Just to confirm that I was not crazy, I commented everything inside manage.py except the import settings line and it worked correctly.
I also tried setting os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' and sys.path.append('/usr/local/myproject') directly to the start of manage.py, to no avail.
What's going on here? Why is Django using the wrong settings module name? It drives me crazy.
python django
Cerin Sep 09 2018-11-21T00: 00Z
source share