django-admin.py 找不到自定义设置文件

Posted

技术标签:

【中文标题】django-admin.py 找不到自定义设置文件【英文标题】:django-admin.py can't find custom settings file 【发布时间】:2013-07-20 01:31:56 【问题描述】:

我有几个自定义的 django 设置,这基本上是我的项目结构:

MainProject/
  manage.py
  my_project/
    settings/
      base.py
      dev.py
      prod.py

我在目录中创建了__init__.py 文件,以将它们标识为包。 我已导出 DJANGO_SETTINGS_MODULE 以指向所选的设置文件。manage.py 命令似乎处理得很好,我从来没有遇到过问题。

问题是,无论我做什么,django-admin.py 都是找不到任何设置文件。我已经尝试了几种可能的解决方案,但到目前为止似乎没有任何效果。

    我用过--settings=my_project.settings.dev 我已经对manage.py 进行了编辑和硬编码,让它指向 dev.py 文件 我在MainProjectmy_project 目录中创建了一个settings 文件,用于导入dev 文件(进而导入base.py)。 我创建了一个settings 文件,让Django 知道它应该使用哪些文件作为settings

这是关于第4点的:

from django.core.management import setup_environ
try:
    import my_project.settings.dev as settings
except ImportError:
    import sys
    sys.stderr.write("Couldn't find the settings.py module.")
    sys.exit(1)
setup_environ(settings)

到目前为止似乎没有任何效果。

======================================

解决方案: 我没有找到确切的解决方案,但由于对所选答案的评论,我了解到您基本上可以使用manage.py 来完成您在django-admin.py 中可以做的所有事情,我不知道!因为使用manage.py 对我有用,所以我很好。

【问题讨论】:

【参考方案1】:

您是否尝试过从您的设置模块导入 __init__.py 中的开发设置?

settings/_init_.py

from .dev import *

【讨论】:

【参考方案2】:

我建议做什么:

创建一个普通的 settings.py 文件并在其中导入其他文件之一。这避免了三个场景之间共享的重复设置+这实际上是根据 DRY 原则推荐的方式。

通常,您只需在特定设置文件中设置调试参数、数据库设置和私钥。所有其他设置都应在所有场景之间共享,以避免忘记更新一项并难以调试错误。

【讨论】:

做到了。它适用于 manage.py,不适用于 django-admin.py 你不应该使用 django-admin.py,你应该使用 manage.py。它负责设置环境并可以执行 django-admin 可以执行的所有命令。 See the Django Doc 不知道!它对我有用 manage.py 所以我解决了这个问题,谢谢! 是的,$ python manage.py check --deploy --settings=my_project.settings.production 为我工作。

以上是关于django-admin.py 找不到自定义设置文件的主要内容,如果未能解决你的问题,请参考以下文章

django-admin.py:找不到命令(bluehost 服务器)

什么时候应该使用 django-admin.py 和 manage.py?

app.config configSections 自定义设置找不到架构信息

找不到自定义的 gradle plugin

设置 django 的 django-admin,py 的问题

django-admin.py和manage.py的用法