求助:ImportError无法从darts.models导入TFTModel及版本冲突问题
问题解决:ImportError: cannot import name 'TFTModel' from 'darts.models' 及版本兼容循环问题
核心原因分析
- darts 0.22.0版本中,
TFTModel已从darts.models迁移至darts.models.forecasting子模块,直接从原路径导入会触发错误。 - darts 0.22.0与statsforecast 0.6.0存在依赖冲突,降级darts又与当前pandas版本不兼容,形成循环问题。
分步解决方案
1. 修正TFTModel导入路径
将导入代码修改为以下任一写法:
# 完整路径导入 from darts.models.forecasting.tft_model import TFTModel # 简化路径导入 from darts.models.forecasting import TFTModel
2. 解决版本兼容冲突
针对Python 3.9.13环境,推荐两种兼容版本组合:
方案一:保留darts 0.22.0
安装与darts 0.22.0兼容的statsforecast版本:pip install statsforecast==1.2.0该版本经测试与darts 0.22.0、Python 3.9.x无依赖冲突。
方案二:锁定pandas版本后调整darts
先安装适配Python 3.9的pandas版本:pip install pandas==1.5.3再降级至darts 0.21.0(此版本
TFTModel仍在darts.models路径下,且与pandas 1.5.3、statsforecast 0.6.0兼容):pip install darts==0.21.0此时可继续使用原导入代码:
from darts.models import TFTModel
3. 环境隔离建议
为避免后续依赖冲突,建议用虚拟环境隔离项目依赖:
# 创建虚拟环境 python -m venv darts_env # 激活Windows虚拟环境 darts_env\Scripts\activate # 安装指定版本依赖 pip install darts==0.22.0 statsforecast==1.2.0 pandas==1.5.3
内容的提问来源于stack exchange,提问作者Caio Navarro
相关产品推荐
相关产品推荐

