我已经阅读了 Pylons 和 Peak 页面上关于 egg 入口点的文档,但我仍然不太明白。有人可以向我解释吗?
“入口点”通常是 Python 包的开发人员或用户可能想要使用的函数(或其他可调用的类似函数的对象),尽管也可以提供不可调用的对象作为入口点(同样正确)在评论中指出!)。
最流行的入口点是console_scripts入口点,它指向您希望作为命令行工具提供给任何安装您的包的人的功能。这进入你的setup.py脚本,如:
console_scripts
setup.py
entry_points={ 'console_scripts': [ 'cursive = cursive.tools.cmd:cursive_command', ], },
我有一个我刚刚部署的名为 的包cursive.tools,我希望它能够提供一个可以从命令行运行的“草书”命令,例如:
cursive.tools
$ cursive --help usage: cursive ...
这样做的方法是定义一个函数,比如cursive_command文件cursive/tools/cmd.py中的一个函数,如下所示:
cursive_command
cursive/tools/cmd.py
def cursive_command(): args = sys.argv[1:] if len(args) < 1: print "usage: ..."
等等;它应该假设它是从命令行调用的,解析用户提供的参数,并且......好吧,做任何命令被设计做的事情。
为入口点使用的一个很好的例子安装这个docutils包:它将安装一些类似六个有用的命令,用于将 Python 文档转换为其他格式。
docutils