'脚本'的利弊与' entry_point'在Python命令行脚本中

时间:2014-04-27 14:03:49

标签: python scripting setuptools setup.py

Python' setuptool有两种方法可以将命令行脚本添加到Python包中:scriptentry_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

每种方法有哪些优点和缺点?

1 个答案:

答案 0 :(得分:6)

我不知道为什么在寻找未回答的问题时,SO向我展示了这个老问题作为最佳结果......但是因为他们确实...这里是文档的答案。

基本上,脚本是一种旧方法,它要求您拥有一个独立的可执行脚本文件,并且入口点方法允许您定义在给出命令时要运行的功能。通过这种方式,您可以在同一个文件/模块中拥有多个功能,然后拥有“切入点”。当用户键入其中一个console_scripts命令时将调用它。

  

尽管setup()支持使用scripts关键字指向要安装的预制脚本,但实现跨平台兼容性的推荐方法是使用console_scripts入口点(见下文)。

来自https://packaging.python.org/tutorials/distributing-packages/#scriptsold source