导入NBEATS时触发AttributeError:pytorch_lightning.utilities.distributed无log属性
解决 AttributeError: module 'pytorch_lightning.utilities.distributed' has no attribute 'log'
问题概况
- 环境:VS Code + Python 3.11.3
- 依赖版本:pytorch-lightning 1.6.5、neuralforecast 0.1.0
- 触发场景:执行
from neuralforecast.models import NBEATS时报错,错误源自neuralforecast的utils.py中这段代码:
import logging import pytorch_lightning as pl pl.utilities.distributed.log.setLevel(logging.ERROR)
两种可行解决办法
办法一:修改neuralforecast的日志代码
pytorch-lightning 1.6.x已移除pl.utilities.distributed.log属性,替换为官方推荐的日志控制方式即可:
找到路径c:\Users\Mister\AppData\Local\Programs\Python\Python311\Lib\site-packages\neuralforecast\utils.py,将原代码段替换为:
import logging import pytorch_lightning as pl # 获取pytorch_lightning日志器并设置级别 pl_logger = logging.getLogger("pytorch_lightning") pl_logger.setLevel(logging.ERROR)
办法二:调整依赖版本适配
neuralforecast 0.1.0与pytorch-lightning 1.6.5存在兼容性问题,可二选一操作:
- 降级pytorch-lightning到1.5.x版本,该版本仍保留
pl.utilities.distributed.log属性 - 升级neuralforecast至较新版本(需确认新版本支持Python 3.11),新版本大概率已修复该API适配问题
内容的提问来源于stack exchange,提问作者PV8
相关产品推荐
相关产品推荐

