我正在尝试在Django中开发一个示例项目,并在运行syncdb命令时收到错误 .
这就是我的项目结构的样子:
/用户/ django_demo / godjango /预定:
manage.py
registration/
forms.py
views.py
models.py
urls.py
bookings/
settings.py
urls.py
我的manage.py文件如下:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
我的PYTHONPATH和DJANGO_SETTINGS_MODULE设置如下
$echo $DJANGO_SETTINGS_MODULE
bookings.settings
$ echo $PYTHONPATH
/Users/django_demo/godjango/bookings
我的WSGI.py文件如下所示:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
当我运行python manage.py syncdb命令时,我收到以下错误 .
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_from_command_line(sys.argv)
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/sql.py", line 6, in <module>
from django.db import models
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/db/__init__.py", line 11, in <module>
if DEFAULT_DB_ALIAS not in settings.DATABASES:
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner
self._setup()
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/conf/__init__.py", line 95, in __init__
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'bookings.settings' (Is it on sys.path?): No module named unipath
有人可以建议我缺少什么吗?
6 回答
错误说
ImportError: Could not import settings 'bookings.settings' (Is it on sys.path?): No module named unipath
那么,你的路径
/Users/django_demo/godjango/bookings
在python-sys.path中?在shell中检查它:
如果没有 - 您需要添加它或只是将
bookings
应用程序移动到sys.path
中表示的路径之一修改您的wsgi.py文件
至
回溯的重要部分就在最后 . 它说“没有名为unipath的模块” . 你在代码中的某个地方提到过,但你似乎没有在你的项目中使用它 - 它不是标准库的一部分,因此你需要将它安装在Python可以看到它的地方 .
或者,您甚至可以在运行时传递设置路径,如下所示:
这应该覆盖环境变量
(DJANGO_SETTINGS_MODULE)
查看小时/etc/apache2/httpd.conf文件;您必须包含WSGIPythonPath指令,以指示包含Django项目的文件夹(manage.py文件),如:
WSGIPythonPath / home / user / Projects / Django / MyProject
如果您在VirtualHost中使用了一些奇怪的端口,请指定是否要收听:
听90
希望这有助于某人
ImportError: Could not import settings 'settings' (Is it on sys.path? Is there an import error in the settings file?): No module named setting
在我的情况下,我使用
__init__.py
导入其他文件,并且它有一个错误,所以设置可能实际存在但有缺陷 .