Чтобы точки входа работали в вашем примере, вам нужно:
entry_points='''
[console_scripts]
command_line_name=foobar:cli
''',
То, что вам не хватает, это понимание значения:
command_line_name=foobar:cli
[console_scripts]
В command_line_name=foobar:cli
есть три вещи:
- Имя скрипта из командной строки (
command_line_name
)
- Модуль, в котором расположен обработчик команды click (
foobar
)
- Имя команды / группы щелчка в этом модуле (
cli
)
setup.py
Для вашего примера с github я бы предложил:
from distutils.core import setup
import setuptools
console_scripts = """
[console_scripts]
sacremoses=sacremoses.cli:cli
"""
setup(
name='sacremoses',
packages=['sacremoses'],
version='0.0.7',
description='SacreMoses',
long_description='LGPL MosesTokenizer in Python',
author='',
license='',
package_data={'sacremoses': [
'data/perluniprops/*.txt',
'data/nonbreaking_prefixes/nonbreaking_prefix.*'
]},
url='https://github.com/alvations/sacremoses',
keywords=[],
classifiers=[],
install_requires=['six', 'click', 'joblib', 'tqdm'],
entry_points=console_scripts,
)
Командный обработчик
В указанной ветке вашего репозитория github нет НИКАКОГО файла cli.py. [код] из вашего вопроса необходимо сохранить в sacremoses/cli.py
, а затем в сочетании с предлагаемыми изменениями в файле setup.py все должно работать нормально.