Skip to content

一个用于分析您的requirements.txt文件并确定支持所有指定依赖项的Python版本信息的工具。只需简单扫描,即可快速为您的项目依赖项找到兼容的Python版本。(pyreqver库的中文版本)

License

Notifications You must be signed in to change notification settings

evanstellun/pyreqver_cn

Repository files navigation

PyReqVer - Python 依赖版本检查工具

注意!该项目不可以和 PyReqVer 项目同时使用,因为它们的功能重复,命令相互冲突,如果在同时使用的情况下发生什么有趣的问题不在维护者的解决范围内。 PyReqVer 是一个命令行工具,帮助您找到支持您 requirements.txt 文件中所有库的 Python 版本。它分析来自 PyPI 的每个包的兼容性信息,并确定支持所有依赖项的 Python 版本的交集。

功能特点

  • 分析 requirements.txt 文件中的包
  • 从 PyPI 获取 Python 版本兼容性数据
  • 识别所有包都支持的通用 Python 版本
  • 处理复杂的版本说明符和分类器
  • 提供清晰的输出,显示兼容的 Python 版本
  • 使用并发请求高效获取包信息

安装

从源代码安装

  1. 克隆或下载此仓库
  2. 安装依赖:
    pip install -r requirements.txt
    

使用 pip 安装

pip install pyreqver

使用方法

基本用法

python main.py path/to/your/requirements.txt

示例:

python main.py requirements.txt

命令行参数

  • requirements: 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']

工作原理

  1. 解析依赖项:工具读取并解析 requirements.txt 文件以提取包名。
  2. 获取包信息:对于每个包,它查询 PyPI 的 JSON API 以获取有关可用版本及其 Python 版本兼容性的元数据。
  3. 分析兼容性:它检查两个兼容性信息来源:
    • 包元数据中的 requires_python 字段
    • 指示 Python 版本支持的包分类器
  4. 查找通用版本:它计算支持您 requirements 中所有包的 Python 版本的交集。
  5. 显示结果:工具显示每个包支持的 Python 版本,并突出显示与所有包兼容的版本。

技术细节

  • 使用 packaging 库处理版本说明符
  • 实现缓存以避免冗余 API 调用
  • 使用并发请求高效获取包信息
  • 处理各种边缘情况,如缺少包信息或不完整的元数据

依赖项

  • requests>=2.25.0:用于向 PyPI 发送 HTTP 请求
  • packaging>=21.0:用于解析版本说明符和处理版本比较

限制

  1. 需要互联网连接以从 PyPI 获取包信息
  2. 某些包可能没有明确的 Python 版本支持信息
  3. 结果基于包元数据,可能不反映实际的运行时兼容性
  4. 该工具检查声明的兼容性,而不是跨 Python 版本的实际功能

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。

注意事项

  1. 此工具需要互联网连接以从 PyPI 获取包信息
  2. 某些包可能没有明确的 Python 版本支持信息
  3. 结果仅供参考,请确保在所选 Python 版本上测试您的代码的兼容性
  4. 该工具可能无法正确处理使用非标准版本控制方案的包

About

一个用于分析您的requirements.txt文件并确定支持所有指定依赖项的Python版本信息的工具。只需简单扫描,即可快速为您的项目依赖项找到兼容的Python版本。(pyreqver库的中文版本)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages