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

Leo*_*rdo 5 django django-admin django-manage.py django-settings

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

MainProject/
  manage.py
  my_project/
    settings/
      base.py
      dev.py
      prod.py
Run Code Online (Sandbox Code Playgroud)

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

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

  1. 我用过--settings=my_project.settings.dev
  2. 我已经编辑并硬编码了manage.py让它指向 dev.py 文件
  3. 我在导入dev文件的和目录settings中创建了一个文件(依次导入 base.py)。MainProjectmy_project
  4. 我创建了一个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)
Run Code Online (Sandbox Code Playgroud)

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

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

解决方案:
我没有找到确切的解决方案,但由于对所选答案的评论,我了解到您基本上可以用于manage.py您可以在 中执行的所有操作django-admin.py,我不知道!因为事情确实对我有用,所以manage.py我对此很满意。

tim*_*vdw 1

我建议做什么:

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

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

  • 你不应该使用django-admin.py,你应该使用manage.py。它负责设置环境并可以执行 django-admin 可以执行的所有命令。[参见 Django 文档](https://docs.djangoproject.com/en/dev/ref/django-admin/) (3认同)