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

Pycaret 2.3.4调用models()方法触发NameError报错如何解决?

PyCaret 2.3.4 调用models()报NameError: name 'logger' is not defined的解决方案

错误原因

该问题是PyCaret 2.3.4版本的已知源码缺陷,内部tabular.py文件的models函数中,日志输出代码提前调用了未初始化的logger变量导致,不涉及环境配置问题。

可行解决方案

  • 方案1:直接修改源码修复(立即生效,无需更换版本)
    打开报错提示的路径 /home/user/.local/lib/python3.8/site-packages/pycaret/internal/tabular.py,定位到第9494行的代码:

    logger.info(f"gpu_param set to {gpu_param}")
    

    直接注释掉该行即可,该日志输出不影响核心功能,注释后运行代码不会再有报错。
    如果你不想删掉日志,也可以在该行上方补充logger初始化代码:

    import logging
    logger = logging.getLogger(__name__)
    
  • 方案2:升级到2.x分支稳定版本
    如果你没有强制使用2.3.4版本的需求,直接升级到2.x系列最终修复版2.3.10即可,该版本已经官方修复了这个bug:

    pip install pycaret==2.3.10
    
  • 方案3:传参规避触发报错
    调用models()函数时显式传入gpu=False参数,部分场景下可以跳过触发有问题的日志代码:

    from pycaret.regression import *
    models(gpu=False)
    

验证方法

修复完成后执行以下代码,正常返回支持的回归模型列表即表示修复成功:

from pycaret.regression import *
models()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:27:03