В файле setup.py
возможно ли указать entry_points
(который создает вещи в .../bin
) на исполняемый модуль или пакет? То есть, если у меня есть следующие настройки:
foo/
__init__.py
__main__.py
Я могу сделать python3 -m foo
, и Python выполнит пакет. (Это удобно, поскольку позволяет относительному импорту работать.)
В сценарии setup.py
я могу добавить двоичные файлы в .../bin
w / что-то вроде
entry_points={
'console_scripts': ['foo=foo.bar:func'],
},
, которая выполняет функцию foo.bar.func()
(при условии, что она существует); возможно ли сделать что-то похожее на python3 -m foo
? Или это сложно делать только функции?
(Конечно, я могу переместить весь свой код в функцию с именем main()
¹, и foo.__main__:main
, кажется, работает. Это просто похоже на этот аспект setuptools
и -m
аспект Python 3 действительно должны работать вместе, но AFAICT, правда нет? Это просто пример того, как отдельные вещи не очень хорошо работают?)
h Который я обычно делаю в любом случае, как будто это хорошая практика.