Добавление команды setuptools с использованием `entry_points`

#python #setuptools

#python #setuptools

Вопрос:

Возможно ли добавлять пользовательские setuptools команды в проект, используя entry_points аргумент setup() вызова?

Например, я добавил это к setup() вызову проекта:

 entry_points = {
    'distutils.commands': [
        'abc = sphinx.setup_command:BuildDoc',
    ],
},
  

Но я по-прежнему не получаю abc команды, когда делаю python setup.py --help-commands . Есть идеи?

https://pythonhosted.org/setuptools/setuptools.html#adding-commands

Ответ №1:

Если ваша цель состоит в том, чтобы добавить setuptools команду для запуска через $ python ./setup.py abc , я добился успеха со следующим.

 
import sphinx.setup_command

setup(
  ...

  cmdclass={
      'abc': sphinx.setup_command.BuildDoc
  }, ...
)
  

Смотрите Расширение distutils здесь.

Комментарии:

1. Так в чем же тогда польза entry_points ? Для пользователей проекта?

2. Помимо всего прочего, это позволяет вам устанавливать скрипты, которые могут использовать пользователи.