You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写仅在高版本Scikit-learn下执行的条件代码

Scikit-learn版本判断执行特定功能的实现方案

要实现仅在Scikit-learn 1.2.2及以上版本执行特定功能的逻辑,不能直接用字符串或数值转换比较版本号,推荐以下两种可靠方法:

方法一:使用packaging模块的Version类

packaging是Python生态中处理版本号的标准工具,能正确解析并比较版本号的各个组成部分:

from packaging import Version
import sklearn

if Version(sklearn.__version__) >= Version("1.2.2"):
    foo(x)  # 1.2.2及以上版本执行的功能
else:
    bar(x)  # 旧版本执行的逻辑

如果未安装packaging,可通过pip安装:

pip install packaging

方法二:使用Scikit-learn自带的版本解析工具

Scikit-learn内置了版本解析函数,无需额外安装依赖:

from sklearn.utils.version import parse_version
import sklearn

if parse_version(sklearn.__version__) >= parse_version("1.2.2"):
    foo(x)
else:
    bar(x)

这两种方法都能正确处理诸如1.2.3、1.10.0这类未来版本的比较,避免直接字符串比较导致的错误(比如字符串"1.10.0"会被误判为小于"1.2.2")。

内容的提问来源于stack exchange,提问作者Dietzsche Nostoevsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 02:44:58