注意!该项目不可以和 PyReqVer 项目同时使用,因为它们的功能重复,命令相互冲突,如果在同时使用的情况下发生什么有趣的问题不在维护者的解决范围内。 PyReqVer 是一个命令行工具,帮助您找到支持您 requirements.txt 文件中所有库的 Python 版本。它分析来自 PyPI 的每个包的兼容性信息,并确定支持所有依赖项的 Python 版本的交集。
- 分析 requirements.txt 文件中的包
- 从 PyPI 获取 Python 版本兼容性数据
- 识别所有包都支持的通用 Python 版本
- 处理复杂的版本说明符和分类器
- 提供清晰的输出,显示兼容的 Python 版本
- 使用并发请求高效获取包信息
- 克隆或下载此仓库
- 安装依赖:
pip install -r requirements.txt
pip install pyreqverpython main.py path/to/your/requirements.txt示例:
python main.py requirements.txtrequirements: requirements.txt 文件的路径(必需)
requests 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5', '2.7']
scikit-learn 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5']
pandas 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5', '2.7']
matplotlib 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5']
numpy 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5', '2.7']
--------------------------------------------------------------------------------
所有库支持的 Python 版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5']
- 解析依赖项:工具读取并解析 requirements.txt 文件以提取包名。
- 获取包信息:对于每个包,它查询 PyPI 的 JSON API 以获取有关可用版本及其 Python 版本兼容性的元数据。
- 分析兼容性:它检查两个兼容性信息来源:
- 包元数据中的
requires_python字段 - 指示 Python 版本支持的包分类器
- 包元数据中的
- 查找通用版本:它计算支持您 requirements 中所有包的 Python 版本的交集。
- 显示结果:工具显示每个包支持的 Python 版本,并突出显示与所有包兼容的版本。
- 使用
packaging库处理版本说明符 - 实现缓存以避免冗余 API 调用
- 使用并发请求高效获取包信息
- 处理各种边缘情况,如缺少包信息或不完整的元数据
requests>=2.25.0:用于向 PyPI 发送 HTTP 请求packaging>=21.0:用于解析版本说明符和处理版本比较
- 需要互联网连接以从 PyPI 获取包信息
- 某些包可能没有明确的 Python 版本支持信息
- 结果基于包元数据,可能不反映实际的运行时兼容性
- 该工具检查声明的兼容性,而不是跨 Python 版本的实际功能
欢迎贡献!请随时提交 Pull Request。
本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
- 此工具需要互联网连接以从 PyPI 获取包信息
- 某些包可能没有明确的 Python 版本支持信息
- 结果仅供参考,请确保在所选 Python 版本上测试您的代码的兼容性
- 该工具可能无法正确处理使用非标准版本控制方案的包