许可证合规工具,用于检测Python PyPI包的许可证名称和类型,支持多种格式的依赖文件(Python、Clojure、JavaScript、iOS、Android等),能够识别公共领域、许可型、copyleft等各类开源许可证,帮助开发团队确保项目依赖的许可证合规性,降低***风险。
requirements.txt(检测许可证名称和类型)覆盖各类免费/自由和开源许可证:
支持排除特定包、自定义报告格式、设置失败条件(如检测到copyleft许可证时返回非零退出码)等。
从Docker Hub拉取:
bashdocker pull pilosus/pip-license-checker
可指定版本标签(如0.41.0)或使用latest。
bashgit clone [***] cd pip-license-checker docker build -t pilosus/pip-license-checker .
直接指定Python包名及版本范围:
bashdocker run -it --rm pilosus/pip-license-checker \ java -jar app.jar 'aiostream==0.4.3' 'pygit2' 'aiohttp>3.7.1'
需检查本地文件(如requirements.txt)时,使用-v挂载主机目录至容器内/volume:
bashdocker run -v `pwd`:/volume \ -e GITHUB_TOKEN=your-gh-token \ # 可选,用于提高GitHub API速率限制 -it --rm pilosus/pip-license-checker \ java -jar app.jar \ --exclude 'pylint.*' \ # 排除匹配正则的包 --requirements '/volume/requirements.txt' \ # Python需求文件 --external '/volume/licenses.csv' \ # 外部许可证文件 --fail StrongCopyleft \ # 检测到StrongCopyleft时失败 --fails-only \ # 仅显示失败项 --verbose # 详细输出
以下示例基于源码编译的lein run,独立jar包替换为java -jar pip-license-checker-[version]-standalone.jar。
bashlein run
bashlein run piny==0.6.0 # 指定版本 lein run aiostream # 最新稳定版
bashlein run --requirements resources/requirements.txt
输出示例:
aiohttp:3.7.2 Apache Software License Permissive piny:0.6.0 MIT License Permissive aiostream:0.4.3 GPLv3 StrongCopyleft mo-collections:4.30.21121 Mozilla Public License 2.0 (MPL 2.0) WeakCopyleft ...
排除名称匹配aio.*的包:
bashlein run --requirements resources/requirements.txt --exclude 'aio.*'
bashlein run --requirements resources/requirements.txt --report-format json-pretty --totals
| 选项 | 描述 | 示例 |
|---|---|---|
-v, --verbose | 详细程度:error(-v)、info(-vv)、debug(-vvv) | -vv |
-r, --requirements FILE | Python需求文件路径 | --requirements req.txt |
-x, --external FILE | 外部许可证文件路径 | --external licenses.csv |
--external-format FORMAT | 外部文件格式:csv/cocoapods/gradle | --external-format cocoapods |
--fail TYPE | 许可证类型检测失败条件 | --fail StrongCopyleft |
--exclude REGEX | 排除包名匹配的正则 | --exclude 'aio.*' |
--report-format FORMAT | 报告格式:stdout/json/csv | --report-format json-pretty |
--github-token TOKEN | GitHub令牌(提高API速率) | --github-token ghp_xxx |
| 类型 | 说明 | 示例许可证 |
|---|---|---|
| NetworkCopyleft | 网络copyleft | GNU Affero GPL |
| StrongCopyleft | 强copyleft | GNU GPL |
| WeakCopyleft | 弱copyleft | MPL、EPL |
| Copyleft | 所有copyleft类型 | - |
| Permissive | 许可型 | MIT、BSD |
| Other | 未识别/专有 | 自定义EULA |
| Error | 许可证未找到 | - |
默认跳过表头,包名列索引0,许可证名列索引1,可通过--external-options自定义:
bashlein run -x data.csv --external-options '{:skip-header false :package-column-index 1}'
指定外部格式为cocoapods:
bashlein run -x Pods-Acknowledgements.plist --external-format cocoapods
指定外部格式为gradle:
bashlein run -x licenses.json --external-format gradle
工具会解析包版本(类似pip),并仅检查解析版本的许可证。
工具仅检查显式依赖,可通过pip freeze生成完整依赖列表:
bashpip freeze > all-reqs.txt && lein run -r all-reqs.txt
不支持,需通过Q2方法生成实际安装的依赖列表。
工具按"原样"提供,不保证信息准确性,不构成***建议,不对使用造成的损害负责。
Copyright © 2020-2025 Vitaly Samigullin
基于Eclipse Public License 2.0或GPL-2.0 WITH Classpath-exception-2.0许可。SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429