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

使用Kats模块遇AttributeError:packaging.version无LegacyVersion属性

问题描述

首次尝试使用Kats模块运行《How to Detect Seasonality, Outliers and Changepoints in Your Time Series》一文的代码,最初用Python 3.6时遇到了和Stack Overflow两个问题相同的future annotations相关错误,按方案升级到Python 3.9后出现新错误,具体报错如下:

from kats.detectors.outlier import OutlierDetector
outlier_detector = OutlierDetector(ts_day, "additive")

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[19], line 1
----> 1 from kats.detectors.outlier import OutlierDetector
      3 outlier_detector = OutlierDetector(ts_day, "additive")

File ~/miniconda3/envs/data_analysisPy39/lib/python3.9/site-packages/kats/__init__.py:6
      1 # Copyright (c) Meta Platforms, Inc. and affiliates.
      2 #
      3 # This source code is licensed under the MIT license found in the
      4 # LICENSE file in the root directory of this source tree.
----> 6 from . import compat  # noqa # usort: skip
      7 from . import consts  # noqa # usort: skip
      8 from . import data  # noqa # usort: skip

File ~/miniconda3/envs/data_analysisPy39/lib/python3.9/site-packages/kats/compat/__init__.py:6
      1 # Copyright (c) Meta Platforms, Inc. and affiliates.
      2 #
      3 # This source code is licensed under the MIT license found in the
      4 # LICENSE file in the root directory of this source tree.
----> 6 from . import compat  # noqa # usort: skip
      7 from . import pandas  # noqa # usort: skip
      8 from . import statsmodels  # noqa # usort: skip

File ~/miniconda3/envs/data_analysisPy39/lib/python3.9/site-packages/kats/compat/compat.py:19
     14 from typing import Callable, Union
     16 from packaging import version as pv
---> 19 V = Union[str, "Version", pv.Version, pv.LegacyVersion]
     22 class Version:
     23     """Extend packaging Version to allow comparing to version strings.
     24 
     25     Wraps instead of extends, because pv.parse can return either a
     26     pv.Version or a pv.LegacyVersion.
     27     """

AttributeError: module 'packaging.version' has no attribute 'LegacyVersion'
修复方案

Kats是可以正常运行的,这个错误是由于packaging库的新版本移除了LegacyVersion类,但Kats的兼容代码仍在引用它导致的,按以下步骤修复:

  • 卸载当前的高版本packaging:
    pip uninstall -y packaging
    
  • 安装兼容的旧版本(比如21.3版本,亲测有效):
    pip install packaging==21.3
    
  • 重新运行你的Kats代码即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:46:15