如何为package.__main__配置Python setuptools控制台脚本入口点?
问题
我的目录结构如下:
package package/__init__.py package/__main__.py setup.py
希望将package.__main__作为命令行入口点,当前setup.py中的entry_points配置示例为:
setuptools.setup( name="package", version=0.1, ... entry_points={"console_scripts": ["llmcli=llmcli"]}, )
请问能否通过配置setuptools的entrypoints实现该需求?
解答
完全可以实现,只需要修改console_scripts的入口指向即可,具体有两种常用方式:
- 方式一:指定
__main__.py中的main()函数
如果你的package/__main__.py里定义了main()函数作为执行入口(这是Python项目的常规写法),直接把entry_points改成:
setuptools.setup( name="package", version=0.1, ... entry_points={"console_scripts": ["llmcli=package.__main__:main"]}, )
- 方式二:直接触发
__main__.py的模块执行逻辑
如果package/__main__.py里包含if __name__ == "__main__":这类直接执行的代码,也可以直接映射模块的__main__入口:
setuptools.setup( name="package", version=0.1, ... entry_points={"console_scripts": ["llmcli=package.__main__:__main__"]}, )
或者更简洁的写法:
entry_points={"console_scripts": ["llmcli=package:__main__"]},
两种方式都能让你安装包后,通过llmcli命令直接触发package.__main__里的逻辑,完全匹配你的目录结构需求。
内容的提问来源于stack exchange,提问作者Att Righ
相关产品推荐
相关产品推荐

