简体   繁体   English

ImportError:无法导入设置

[英]ImportError: Could not import settings

I am trying to develop an sample project in Django and getting errors when I run the syncdb command. 我正在尝试在Django中开发示例项目,并且在运行syncdb命令时遇到错误。

This is how my project structure looks like: 这是我的项目结构的样子:

/Users/django_demo/godjango/bookings: / Users / django_demo / godjango / bookings:

manage.py
    registration/
        forms.py
        views.py
        models.py
        urls.py
    bookings/
        settings.py
        urls.py

And my manage.py file is as follows: 我的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)

And my PYTHONPATH and DJANGO_SETTINGS_MODULE are set as below 我的PYTHONPATH和DJANGO_SETTINGS_MODULE设置如下

$echo $DJANGO_SETTINGS_MODULE
bookings.settings

$ echo $PYTHONPATH
/Users/django_demo/godjango/bookings

And my WSGI.py file looks like below: 我的WSGI.py文件如下所示:

 import os
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings")
 from django.core.wsgi import get_wsgi_application
 application = get_wsgi_application()

When I run the python manage.py syncdb command, I am getting the following error. 当我运行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

Could someone suggest what I am missing? 有人可以建议我缺少什么吗?

The error says ImportError: Could not import settings 'bookings.settings' (Is it on sys.path?): No module named unipath 错误消息: ImportError: Could not import settings 'bookings.settings' (Is it on sys.path?): No module named unipath

So, is your path /Users/django_demo/godjango/bookings within the python-sys.path? 那么,您的路径/Users/django_demo/godjango/bookings是吗?

Check it in your shell with: 使用以下命令在您的外壳中检查它:

$ python
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> for path in sys.path: print path
... 

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/suds-0.4-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL-1.1.7-py2.7-macosx-10.6-intel.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/spyne-2.8.2_rc-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml-3.0alpha2-py2.7-macosx-10.6-intel.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pytz-2012d-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_debug_toolbar-0.9.4-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_social_auth-0.7.7-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/python_openid-2.2.5-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/oauth2-1.5.211-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django-1.4.1-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/httplib2-0.7.6-py2.7.egg
/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
/Library/Python/2.7/site-packages
>>> 

If not - you need to add it or simply move your bookings app into one of the paths represented in your sys.path 如果不是,则需要添加它或将bookings应用程序移至sys.path表示的路径之一

Modify your wsgi.py file from 从修改您的wsgi.py文件

 import os
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings")
 from django.core.wsgi import get_wsgi_application
 application = get_wsgi_application()

to

import os, sys    
sys.path.append(' /Users/Sreek/django_demo/godjango/bookings')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

The significant part of the traceback here is right at the very end. 回溯的重要部分就在最后。 It says "No module named unipath". 它说“没有名为unipath的模块”。 You've referred to that somewhere in your code, but you don't seem to have it in your project - it's not part of the standard library, so you'll need to install it somewhere that Python can see it. 您已经在代码的某个地方引用了它,但是您似乎没有在项目中使用它-它不是标准库的一部分,因此您需要将其安装在Python可以看到的地方。

Alternatively, you can even pass the settings path at run time like so: 另外,您甚至可以在运行时通过设置路径,如下所示:

python manage.py syncdb --settings=bookings.settings --pythonpath=/Users/django_demo/godjango/bookings

This should override the environment variable (DJANGO_SETTINGS_MODULE) 这应该覆盖环境变量(DJANGO_SETTINGS_MODULE)

Review hour /etc/apache2/httpd.conf file; 查看小时/etc/apache2/httpd.conf文件; you must include the WSGIPythonPath directive, to indicate the folder which contains your Django project (manage.py file), like: 您必须包含WSGIPythonPath指令,以指示包含Django项目的文件夹(manage.py文件),例如:

WSGIPythonPath /home/user/Projects/Django/MyProject WSGIPythonPath / home / user / Projects / Django / MyProject

also if you used some weird port in your VirtualHost, specify if for listening: 另外,如果您在VirtualHost中使用了一些奇怪的端口,请指定是否监听:

Listen 90 听90

Hope this helps somebody 希望这对某人有帮助

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导入其他文件,但其中存在错误,因此设置可能实际上存在但存在缺陷。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ImportError:无法导入设置…没有模块命名设置? - ImportError: Could not import settings… No module named settings? Ubuntu ImportError:无法导入设置(在Mac上可用) - Ubuntu ImportError: Could not import settings (works on Mac) WSGI / APACHE / DJANGO .. ImportError:无法导入设置 - WSGI / APACHE / DJANGO .. ImportError: Could not import settings ImportError:无法导入设置。 它在路上吗? - ImportError: Could not import settings. Is it in path? 一直得到ImportError:无法导入设置'myapp.settings'错误 - Consistently getting ImportError: Could not import settings 'myapp.settings' error Django新手部署问题-ImportError:无法导入设置“设置” - Django newbie deployment question - ImportError: Could not import settings 'settings' ImportError:无法导入设置&#39;testapp.settings.local&#39; - ImportError: Could not import settings 'testapp.settings.local' ImportError:无法导入设置&#39;health_tweets.settings&#39;没有名为health_tweets.settings的模块 - ImportError: Could not import settings 'health_tweets.settings' No module named health_tweets.settings ImportError:无法导入设置“ wequest.settings”(在sys.path上吗?):没有名为wequest.settings的模块 - ImportError: Could not import settings 'wequest.settings' (Is it on sys.path?): No module named wequest.settings ImportError:无法导入设置&#39;mysite.settings&#39;(是否在sys.path上?):没有名为mysite.settings的模块 - ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM