Подтвердить что ты не робот

Плюсы и минусы "script" против "entry_point" в сценариях командной строки Python

Python setuptool имеет два способа добавления сценариев командной строки в пакет Python: script и entry_point.

В этом руководстве описываются следующие способы:

scripts

Добавьте в дерево пакетов Python script (funniest-joke) и добавьте его путь к setup.py:

setup(
    ...
    scripts=['bin/funniest-joke'],
    ...
)

Точка входа:

Добавьте в дерево пакетов Python script (funniest-joke). Добавьте к нему функцию main() и добавьте подмодуль command_line.py, который запускает самое забавное s main() `:

command_line.py:

import funniest

def main():
    print funniest.joke()

setup.py

setup(
    ...
    entry_points = {
        'console_scripts': ['funniest-joke=funniest.command_line:main'],
    }
    ...
)

Каковы преимущества и недостатки каждого метода?

4b9b3361

Ответ 1

Я понятия не имею, почему SO показала мне этот старый вопрос как лучший результат при поиске оставшихся без ответа вопросов... но так как они... вот ответ из документов.

В основном сценарии - это старый способ, который требует наличия автономного исполняемого файла script, а метод входных точек позволяет определить, какие функции вы хотите запускать при указании команды. Таким образом, вы можете иметь несколько функций в одном файле/модуле, а затем иметь "точки входа", которые будут вызываться, когда пользователь вводит одну из команд console_scripts.

Although setup() supports a scripts keyword for pointing to pre-made scripts to install, the recommended approach to achieve cross-platform compatibility is to use console_scripts entry points (see below).

От https://packaging.python.org/tutorials/distributing-packages/#scripts