我是 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
中的packages
kwarg 中。
setup(
# ...
packages=(
"persistent_settings",
"persistent_settings.migrations",
"persistent_settings.templatetags",
"persistent_settings.management", # add this line
"persistent_settings.management.commands", # and this line
)
# ...
)