Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入错误:无法导入设置_Python_Django - Fatal编程技术网

Python 导入错误:无法导入设置

Python 导入错误:无法导入设置,python,django,Python,Django,我试图在Django中开发一个示例项目,在运行syncdb命令时出现错误 我的项目结构如下所示: /用户/django_演示/godjango/预订: manage.py registration/ forms.py views.py models.py urls.py bookings/ settings.py urls.py 我的manage.py文件如下: #!/usr/bin

我试图在Django中开发一个示例项目,在运行syncdb命令时出现错误

我的项目结构如下所示:

/用户/django_演示/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_设置_模块设置如下

$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
回溯(最近一次呼叫最后一次):
文件“manage.py”,第11行,在
从命令行(sys.argv)执行命令
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/core/management/_init__.py”,第443行,从命令行执行
utility.execute()
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/core/management/_init__.py”,执行中第382行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/core/management/_init__.py”,第261行,在fetch_命令中
klass=加载命令类(应用程序名称,子命令)
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/core/management/_init__uuuuuu.py”,第69行,在load_命令类中
模块=导入模块(“%s.management.commands.%s%”(应用程序名称,名称))
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/utils/importlib.py”,第35行,在导入模块中
__导入(名称)
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/core/management/commands/syncdb.py”,第8行,在
从django.core.management.sql导入自定义\u sql\u for\u模型,发出\u post\u sync\u信号
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/core/management/sql.py”,第6行,在
从django.db导入模型
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/db/_init__uuuu.py”,第11行,在
如果默认\u DB\u别名不在settings.DATABASES中:
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/utils/functional.py”,第184行,在内部
self.\u设置()
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/conf/_init__.py”,第42行,在安装程序中
自包装=设置(设置模块)
文件“/Users/django_demo/godjango/lib/python2.7/site packages/django/conf/_init__.py”,第95行,在_init中__
raise ImportError(“无法导入设置“%s”(是否在系统路径上?:%s”%(self.settings\u模块,e))
ImportError:无法导入设置“bookings.settings”(是否在sys.path上?):没有名为unipath的模块

有人能告诉我缺少什么吗?

错误为导入错误:无法导入设置“bookings.settings”(是否在sys.path上?):没有名为unipath的模块

那么,您的路径是否在python-sys.path中

在shell中使用以下选项检查它:

$ 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
>>> 

如果没有-您需要添加它,或者只需将您的
预订
应用程序移动到您的
系统路径中表示的路径之一。这里的回溯的重要部分就在最后。上面写着“没有名为unipath的模块”。您已经在代码中的某个地方提到了它,但您的项目中似乎没有它——它不是标准库的一部分,因此您需要将它安装在Python可以看到的地方。

修改您的wsgi.py文件

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


查看hour/etc/apache2/httpd.conf文件;必须包含WSGIPythonPath指令,以指示包含Django项目(manage.py文件)的文件夹,如:

WSGIPythonPath/home/user/Projects/Django/MyProject

另外,如果您在VirtualHost中使用了一些奇怪的端口,请指定是否用于侦听:

听90


希望这有助于某人导入错误:无法导入设置“设置”(是否在sys.path上?设置文件中是否存在导入错误?):没有名为setting的模块


在我的例子中,我使用
\uuuu init\uuuu.py
导入其他文件,但其中有一个错误,因此设置可能确实存在,但有缺陷

或者,您甚至可以在运行时传递设置路径,如下所示:

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

这应该覆盖环境变量
(DJANGO\u SETTINGS\u MODULE)

如果它在PYTHONPATH中,那么我认为这是没有必要的,是吗?我如何才能“移动”我的应用到其中一个路径中?@Timo:如果你使用virtualenv,你可以使用命令
add2virtualenv
请,任何人都可以帮我解决这个问题。我也面临这样的错误。但还是无法解决。这就是我的问题所在。哦,是的,伙计!你救了我2,64小时!非常感谢。
python manage.py syncdb --settings=bookings.settings --pythonpath=/Users/django_demo/godjango/bookings