如何为具有多个Python命令组的控制台脚本设置入口点?
假设我的库带有如何为具有多个Python命令组的控制台脚本设置入口点?,python,command-line,console,setuptools,python-click,Python,Command Line,Console,Setuptools,Python Click,假设我的库带有foobar.py,设置如下: \foobar.py \foobar \__init__.py \setup.py 控制台脚本中CLI的层次结构: foobar.py \cli \foo \kungfu \kungpow \bar \blacksheep \haveyouanywool [代码]: 如何在setup.py中设
foobar.py
,设置如下:
\foobar.py
\foobar
\__init__.py
\setup.py
控制台脚本中CLI的层次结构:
foobar.py
\cli
\foo
\kungfu
\kungpow
\bar
\blacksheep
\haveyouanywool
[代码]:
如何在setup.py
中设置条目?
有许多示例,但它们仅显示单个入口点的单个命令,例如
但是甚至可以用myfoobar.py
click脚本的结构来设置控制台脚本吗?
如果没有,我应该如何重新构造foobar.py中的命令?
在上下文中,我为
sacremoses
库编写了以下脚本:
但是我不知道如何配置
setup.py
以正确安装sacremoses.py脚本:要使入口点在示例中正常工作,您需要:
entry_points='''
[console_scripts]
command_line_name=foobar:cli
''',
您缺少的是对以下含义的理解:
command_line_name=foobar:cli
[控制台脚本]
在命令行\u name=foobar:cli中有三件事:
来自命令行的脚本名称(命令行名称
)
单击命令处理程序所在的模块(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 repo的引用分支中,没有cli.py文件。您的问题中的[code]需要保存在sacremoses/cli.py
中,然后与建议对setup.py进行的更改相结合,一切都会正常工作。我不清楚您为什么需要多个入口点?你想实现什么?我想让用户做一些类似于$。/foobar foo kungfu--help
和$。/foobar blacksheep--help
。感谢回答中的澄清!!
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,
)