Команда управления не отображается при установке от стороннего производителя - PullRequest
0 голосов
/ 21 июня 2020

Я являюсь автором django -persistent-settings . Я обнаружил кое-что странное.

В приложении есть различные команды управления . Когда я выполняю python setup.py --help в проекте django -persistent-settings, отображаются команды управления:

[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

И команды не отображаются.

Окружающая среда

  • Python 3,8
  • Django 2.2.12

1 Ответ

0 голосов
/ 21 июня 2020

Я забыл добавить пакет управления в setup.py. Глупая ошибка.

Не забудьте добавить подпакеты команд управления в packages kwarg в setup.py.

setup(
    # ...
    packages=(
            "persistent_settings",
            "persistent_settings.migrations",
            "persistent_settings.templatetags",
            "persistent_settings.management", # add this line
            "persistent_settings.management.commands", # and this line
        )
    # ...
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...