【发布时间】:2016-10-30 20:39:38
【问题描述】:
我创建了一个用于 django 的包,其主要功能可通过管理命令访问。但是,为了使管理命令可访问,django 似乎坚持将包列为INSTALLED_APPS 中的应用程序@ 987654323@。
此应用程序仅在进行集成测试时用作我们构建过程的一部分。它甚至不需要安装在开发人员机器上,更不用说最终安装在我们的生产环境中了。但是,由于它需要在 settings.py 的已安装应用程序中,它也会传播到 requirements.txt,因为它会突然中断未安装的构建。
有没有办法在不将软件包安装为成熟应用的情况下注入管理命令?
或者:是否有标准/推荐的方式以不同于通过管理命令的方式向tox 提供命令?
【问题讨论】:
-
查看源代码:github.com/django/django/blob/master/django/core/management/… 管理命令非常严格——从某种意义上说,它们只允许在 INSTALLED_APPS 中定义的内置插件或应用程序
-
对,我很害怕(既然你提到了,看源代码应该是我第一次尝试)。除了作为管理命令之外,还有其他标准方法可以使命令对
tox可用吗? -
我过去采用的一种方法 - 虽然不是很优雅,但有一个
scripts/目录并调用django.setup()将其注册为 django 脚本 - 虽然它有其缺点。 -
您可以做的另一件事是将您的应用安装为
requirements.txt的一部分,并配置任何自定义应用来调用它。
标签: python django django-manage.py