Python' setuptool有两种方法可以将命令行脚本添加到Python包中:script
和entry_point
。
This tutorial概述了这些方式:
scripts
将Python脚本(funniest-joke
)添加到包树,并将其路径添加到setup.py
:
setup(
...
scripts=['bin/funniest-joke'],
...
)
将Python脚本(funniest-joke
)添加到包树中。添加main()
功能,然后添加运行最有趣command_line.py
的{{1}}子模块:
main()
command_line.py
import funniest
def main():
print funniest.joke()
setup.py
每种方法有哪些优点和缺点?
答案 0 :(得分:6)
我不知道为什么在寻找未回答的问题时,SO向我展示了这个老问题作为最佳结果......但是因为他们确实...这里是文档的答案。
基本上,脚本是一种旧方法,它要求您拥有一个独立的可执行脚本文件,并且入口点方法允许您定义在给出命令时要运行的功能。通过这种方式,您可以在同一个文件/模块中拥有多个功能,然后拥有“切入点”。当用户键入其中一个console_scripts
命令时将调用它。
尽管setup()支持使用scripts关键字指向要安装的预制脚本,但实现跨平台兼容性的推荐方法是使用console_scripts入口点(见下文)。
来自https://packaging.python.org/tutorials/distributing-packages/#scripts(old source)