Если вы думаете о распространении программы, вам, вероятно, следует добавить точки входа CLI в файл setup.py
вашего пакета.
Например:
Структура проекта
ROOT/
- setup.py
- src/
- program.py
src/program.py
# program.py
def main():
pass
setup.py
# setup.py
from setuptools import find_packages, setup
setup(
name='my_program',
version='1.0.0',
packages=find_packages(),
entry_points={
'console_scripts': [
'Program=src.program:main'
]
}
)
Важным битом является строка 'Program=src.program:main'
: она связывает имя Program
(имя для вызоваиз командной строки) с функцией main
из src/program.py
.
Обратите внимание, что это имя может быть любым - оно не обязательно должно быть связано с именем вашего пакета, именами файлов Python и т. д.
Вы можете выполнить локальную установку вашего пакета, чтобы проверить это.
В каталоге ROOT
введите $ pip install -e .
Затем введите
$ Program
в терминале из любого каталога будет выполнять функцию main
из src/program.py
.
Это поведение одинаково, если кто-то pip install
s использует ваш пакет через PyPI вместо вашего локальногоустановка.