mange.py中的Django settings.py导入错误配置错误

Posted

技术标签:

【中文标题】mange.py中的Django settings.py导入错误配置错误【英文标题】:Django settings.py import error in mange.py Configuration error 【发布时间】:2018-06-14 04:17:21 【问题描述】:

提前感谢我的查询。

我创建了一个 django 项目,它在 src 文件夹中有 manage.py 文件,当从 SRC 文件夹运行终端时它工作正常。

对于 Heroku 部署 manage.py 应该放在根目录中,所以我用“os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.tweetme.settings")" 更新了 manage.py 文件

将 "os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tweetme.settings")" 更改为 "os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.tweetme.settings ")" 在本地运行时遇到导入问题。需要解决方案如何在两个文件夹深处导入setting.py。

#!/usr/bin/env python

import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.tweetme.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        # The above import may fail for some other reason. Ensure that the
        # issue is really that Django is missing to avoid masking other
        # exceptions on Python 2.
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)

我面临以下错误: 附加了 Error_Message.png

Hiras-Mac-mini-2:tweethere apple$ python manage.py runserver 回溯(最近一次通话最后): 文件“manage.py”,第 23 行,在 execute_from_command_line(sys.argv) 文件“/Library/Python/2.7/site-packages/django/core/management/init.py”,第 363 行,在 execute_from_command_line 实用程序.execute() 文件“/Library/Python/2.7/site-packages/django/core/management/init.py”,第 307 行,在执行中 settings.INSTALLED_APPS getattr 中的文件“/Library/Python/2.7/site-packages/django/conf/init.py”,第 56 行 self._setup(名称) _setup 中的文件“/Library/Python/2.7/site-packages/django/conf/init.py”,第 41 行 self._wrapped = 设置(settings_module) init 中的文件“/Library/Python/2.7/site-packages/django/conf/init.py”,第 110 行 mod = importlib.import_module(self.SETTINGS_MODULE) import_module 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/init.py”,第 37 行 进口(名称) ImportError:没有名为 src.tweetme.settings 的模块

***这是我的包结构:***附加的 Project_Structure.png

-Project
    -bin
    -include
    -lib
    -src
       -subProject1
       -subProject2
       -subProject3
       -mainProject
             -Settings
                 -__init__.py
                 -base.py
                 -local.py
                 -production.py
       -manage.py
       -db.sqlite3
    -static-serve
       -.env
       -.python
       -manage.py
       -ProcFile
      -requirements.txt

Project_Structure.pngError_Message.png

【问题讨论】:

您的问题令人困惑,因为您使用了诸如tweethere 之类的真实目录名称和mainProject 之类的虚构名称的混合。如果你到处都用真名会更清楚。 【参考方案1】:

如果manage.py不在src目录下,则需要将src添加到Python路径中。

import sys
sys.path.append('src')

然后您应该保持 DJANGO_SETTINGS_MODULE 不变,而不要使用 src

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tweetme.settings")

【讨论】:

以上是关于mange.py中的Django settings.py导入错误配置错误的主要内容,如果未能解决你的问题,请参考以下文章

middleware中间件

django之中间件middleware

Django补充——中间件请求的生命周期等

禁用在pycharm中自动将迁移添加到git

pycharm中配置启动Django项目

在pycharm中启动Django服务器