Как добавить скрипт entry_point / console в setup.py, использующий аргументы - PullRequest
1 голос
/ 27 февраля 2020

Я хочу добавить точку входа в setup.py и передать аргумент. Возможно ли это, и если да, то как? Я попробовал и посмотрел документацию, но не могу понять, как это сделать.

Пример: Формат пакета:

mypackage/
   setup.py
   mypackage/
      __main__.py

main .py содержит :

def main(print_me=False):
    if print_me:
       print("test")

setup.py содержит консольные сценарии, которые выглядят следующим образом:

entry_points={
        'console_scripts': [
            'test = mypackage.__main__:main(print_me=True)'
         ]}

Кажется, это не сработает, что будет правильным, если он есть?

1 Ответ

1 голос
/ 27 февраля 2020

Согласно setuptools 'документации по "Automati c Создание скрипта" это невозможно:

Указанные вами функции вызываются с помощью без аргументов

В качестве альтернативы вы можете сделать такую ​​вещь:

В __main__.py:

def main_true():
    return main(print_me=True)

В setup.py:

entry_points={
    'console_scripts': [
        'test = mypackage.__main__:main_true'
     ],
},

Но в данном конкретном случае, поскольку True уже является аргументом по умолчанию для параметра print_me, это, вероятно, не является необходимым, и изменения 'test = mypackage.__main__:main(print_me=True)' на 'test = mypackage.__main__:main' должно быть достаточно.

...