作为第三方安装时,管理命令不显示



我是 django-persistent-settings 的作者。我意识到了一些奇怪的事情。

该应用程序具有各种管理命令。当我在 django 持久设置项目中执行python setup.py --help时,管理命令确实会显示:

[persistent_settings]
delvar
getvar
setvar

这些命令也在库中进行了测试。但是,当我将其安装到项目时,这些命令不会显示。我想知道为什么会这样。

我已经阅读了文档的相关部分,但找不到有关我问题的警告、小节或类似内容。我还检查了其他一些具有自定义管理命令的项目的源代码,例如django-simple-history或django-rest-framework。他们或多或少做同样的事情。

有什么我不知道的吗?一个我没有看到但以某种方式遇到的问题?

恢复意外行为

确保安装了 Django 2 并创建一个虚拟项目。

django-admin --version
# django 2.2.12 or something similar
django-admin createproject foo
cd foo
virtualenv .venv
source .venv/bin/activate
pip install "django<3" django-persistent-settings

打开foo/settings.py并将其添加到INSTALLED_APPS

INSTALLED_APPS = [
# ...
"persistent_settings"
]

列出命令:

python setup.py --help

并且命令不显示。

<小时 />

环境

  • 蟒蛇 3.8
  • 姜戈 2.2.12

我忘了将管理包添加到setup.py。一个愚蠢的错误。

请记住将您的管理命令子包添加到setup.py中的packageskwarg 中。

setup(
# ...
packages=(
"persistent_settings",
"persistent_settings.migrations",
"persistent_settings.templatetags",
"persistent_settings.management", # add this line
"persistent_settings.management.commands", # and this line
)
# ...
)

最新更新