manimgeo.utils.version 源代码

from packaging.version import parse, InvalidVersion
from typing import Optional
import importlib.metadata

[文档] def check_library_version( lib_name: str, min_version: Optional[str] = None, max_version: Optional[str] = None ) -> bool: """ 检查指定库的版本是否在[min_version, max_version]范围内。 :param lib_name: 库名称 :param min_version: 最低版本(可选) :param max_version: 最高版本(可选) :return: 是否满足条件 """ try: # 获取当前版本 version_str = importlib.metadata.version(lib_name) current_version = parse(version_str) except importlib.metadata.PackageNotFoundError: raise ValueError(f"'{lib_name}' 未安装") except InvalidVersion: raise ValueError(f"'{lib_name}' 的版本号无法解析: {version_str}") # 检查最低版本 if min_version is not None: min_ver = parse(min_version) if current_version < min_ver: return False # 检查最高版本 if max_version is not None: max_ver = parse(max_version) if current_version > max_ver: return False return True