如何使用Nuitka打包基于Click的CLI应用并配置对应入口点
Nuitka编译Click CLI应用的入口指定方法
使用Nuitka编译Click CLI应用时,不需要像setup.py那样单独配置entry_points字段,有两种常用的入口指定方式:
1. 直接使用带入口判断的脚本
如果你的入口脚本(比如示例中的yourscript.py)末尾已经添加了执行入口判断:
if __name__ == "__main__": cli()
直接编译该脚本即可,不需要额外配置入口:
nuitka --standalone --onefile yourscript.py
编译生成的可执行文件直接运行,效果和通过pip安装后调用yourscript命令完全一致。
2. 直接指定入口函数(无需修改源代码)
如果不想在源脚本里添加__main__判断,可以直接用Nuitka的--entry-point-func参数指定入口函数,写法和setup.py的entry_points完全一致:
nuitka --standalone --onefile --entry-point-func=yourscript:cli yourscript.py
如果是多文件的Python包结构,只需要额外添加参数把完整包包含进来即可,入口指定方式不变,示例:
nuitka --standalone --onefile --include-package=your_package_name --entry-point-func=your_package_name.cli:cli
注意事项
- 编译前请确保当前Python环境已经安装了Click依赖,Nuitka会自动把依赖打包到可执行文件中,无需额外配置
- 如果运行编译后的程序出现找不到模块的报错,可以添加
--include-module=click参数强制包含Click模块 - 生成的可执行文件默认和入口文件同名,你可以自行重命名为想要的命令名,和setup.py中定义的
console_scripts命名效果完全一致
内容的提问来源于stack exchange,提问作者Hamza Zubair
相关产品推荐
相关产品推荐

