Django/Python EnvironmentError?

2019-02-11 06:09发布

问题:

I am getting an error when I try to use syncdb:

python manage.py syncdb

Error message:

File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 83, in __init__
raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
EnvironmentError: Could not import settings '/home/simi/workspace/hssn_svn/hssn' (Is it on sys.path? Does ti have syntax errors?): Import by filename is not supported.

I'm a newbie with Django/Python, but I can't figure this error out after having researched online for a while now.

回答1:

Your trace states:

Import by filename is not supported.

Which might indicate that you try to import (or maybe set the DJANGO_SETTINGS_MODULE) to the full python filename, where it should be a module path: your.module.settings

You could also try to specify your DJANGO_SETTINGS_MODULE directly from command line, like:

$ DJANGO_SETTINGS_MODULE=your.module.settings ./manage.py syncdb


回答2:

Make sure your settings.py file is in the same directory as manage.py (you will also have to run manage.py from this directory, i.e. ./manage.py syncdb), or make the environment variable DJANGO_SETTINGS_MODULE point to it.



回答3:

Another thing that gives this error is permissions - very hard to track down.

Solution for me was to move <myproject> to /var/www/<myproject> and do chown -R root:root /var/www/<myproject>