目录
报错根源与最终正确命令
一、报错核心原因
二、官方标准正确格式(直接复制运行)
对接私有内网服务完整命令
带 API 密钥场景(私有服务开启鉴权)
命令顺序拆解(顺序绝对不能乱)
三、两种替代方案(规避参数调试)
方案 1:离线本地扫描(无需配置 API 地址,无网络 / 内网不通优先用)
方案 2:环境变量配置 API 地址(不用每次命令写长 URL)
四、快速验证帮助命令(确认参数归属)
报错根源与最终正确命令
一、报错核心原因
报错argument subparser: invalid choice: 'http://x.x.x.x:8083'本质是参数归属搞错: 在scanoss-py 1.54.2版本中,--apiurl属于scan子命令的局部参数,不是全局参数,必须写在scan子命令后面,不能写在前面PyPI。
你之前两种错误写法:
scanoss-py --apiurl xxx scan .程序先读取全局参数,读完后把scan识别为子命令,语法不兼容;scanoss-py scan . --apiurl xxx程序把.当成待扫描目录后,把后面的http://xxx误识别成下一个子命令,所以报网址不是合法子命令。
二、官方标准正确格式(直接复制运行)
对接私有内网服务完整命令
scanoss-py scan --apiurl http://172.168.4.206:8083 . -o report.html带 API 密钥场景(私有服务开启鉴权)
scanoss-py scan --apiurl http://172.168.4.206:8083 --key 你的密钥 . -o report.html命令顺序拆解(顺序绝对不能乱)
scanoss-py:程序入口scan:固定扫描子命令(必须紧跟程序名)--apiurl http://172.168.4.206:8083:scan 子命令专属参数,写在scan之后、目录.之前.:待扫描项目根目录-o report.html:输出 HTML 报告参数
三、两种替代方案(规避参数调试)
方案 1:离线本地扫描(无需配置 API 地址,无网络 / 内网不通优先用)
# 首次拉取离线引擎 scanoss-py engine pull # 离线扫描生成报告 scanoss-py scan . --offline -o report.html方案 2:环境变量配置 API 地址(不用每次命令写长 URL)
Windows CMD 设置临时环境变量(当前窗口生效)
set SCANOSS_API_URL=http://172.168.4.206:8083 # 直接扫描,无需带--apiurl参数 scanoss-py scan . -o report.html四、快速验证帮助命令(确认参数归属)
- 查看全局顶层参数(无
--apiurl)
scanoss-py -h- 查看 scan 子命令专属参数(包含
--apiurl)
scanoss-py scan -h