【问题标题】:wsgi: No module named 'settings'wsgi:没有名为“设置”的模块
【发布时间】:2018-08-08 07:55:04
【问题描述】:

我已经在我的 Ubuntu16.4 上安装了 apache2 和 wsgi 我收到了这个错误;

ImportError: No module named 'settings'

在我的 Django 项目文件夹中,有一个名为 'settings' 的目录,在 'settings' 文件夹中,有几个像 default.py, development.py,... 这样的设置文件。 在wsgi_dev.py里面,wsgi的设置就完成了。

os.environ.setdefault("DJANGO_SETTINGS_MODULE",'settings.development')

此设置文件夹未被识别为模块。我在设置文件夹中有__init__.py

`File "/usr/local/lib/python3.5/dist-packages/django/__init__.py", line 22, in setup` 
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.5/dist-packages/django/conf/__init__.py", line 56, in getattr
self._setup(name)
File "/usr/local/lib/python3.5/dist-packages/django/conf/__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.5/dist-packages/django/conf/__init__.py", line 110, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in find_and_load`
File "<frozen importlib._bootstrap>", line 944, in find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked

【问题讨论】:

  • 你没有展示你的项目布局或Apache配置,所以我们只能猜测问题是什么。

标签: django ubuntu apache2 wsgi


【解决方案1】:

将此添加到您的wsgi.py

    import os
    import sys
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.append(BASE_DIR)
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.development'
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.development")

【讨论】:

    【解决方案2】:

    通常,外部项目目录(包含 manage.py 的目录)位于 Python 路径中,因此在设置 DJANGO_SETTINGS_MODULE 时必须包含项目名称。例如:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'mysite.settings.development')
    

    【讨论】:

    • 它对我不起作用。所以我写了完整的错误信息。
    猜你喜欢
    • 2015-08-06
    • 2012-07-16
    • 2020-01-15
    • 1970-01-01
    • 2017-06-22
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多