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

Scipy 1.14.1导致Statsmodels 0.14.2运行失败,求解决方案

Scipy 1.14.1环境下Python程序报错的解决方法

安装Scipy 1.14.1后,原本可正常运行的Python程序出现故障,回退至1.14.0后报错消失。以下是问题详情及解决方案:

最小复现示例(MRE)

import pandas as pd
import plotly.express as px

if __name__ == "__main__":
    data = {
        "Date": [0, 7, 14, 21, 28],
        "Value": [100, 110, 120, 115, 122]
    }
    df = pd.DataFrame(data)
    px.scatter(df, x="Date", y="Value", trendline="ols")

报错栈追踪

Traceback (most recent call last):
  File "/Users/****/Python/Aug22.py", line 12, in <module>
    tl = px.scatter(
         ^^^^^^^^^^^
  File "/Users/****/venv/lib/python3.12/site-packages/plotly/express/_chart_types.py", line 66, in scatter
    return make_figure(args=locals(), constructor=go.Scatter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/****/venv/lib/python3.12/site-packages/plotly/express/_core.py", line 2267, in make_figure
    patch, fit_results = make_trace_kwargs(
                         ^^^^^^^^^^^^^^^^^^
  File "/Users/****/venv/lib/python3.12/site-packages/plotly/express/_core.py", line 361, in make_trace_kwargs
    y_out, hover_header, fit_results = trendline_function(
                                       ^^^^^^^^^^^^^^^^^^^
  File "/Users/****/venv/lib/python3.12/site-packages/plotly/express/trendline_functions/__init__.py", line 43, in ols
    import statsmodels.api as sm
  File "/Users/****/venv/lib/python3.12/site-packages/statsmodels/api.py", line 136, in <module>
    from .regression.recursive_ls import RecursiveLS
  File "/Users/****/venv/lib/python3.12/site-packages/statsmodels/regression/recursive_ls.py", line 14, in <module>
    from statsmodels.tsa.statespace.mlemodel import (
  File "/Users/****/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/mlemodel.py", line 33, in <module>
    from .simulation_smoother import SimulationSmoother
  File "/Users/****/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/simulation_smoother.py", line 11, in <module>
    from .kalman_smoother import KalmanSmoother
  File "/Users/****/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/kalman_smoother.py", line 11, in <module>
    from statsmodels.tsa.statespace.representation import OptionWrapper
  File "/Users/****/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/representation.py", line 10, in <module>
    from .tools import (
  File "/Users/****/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/tools.py", line 14, in <module>
    from . import (_initialization, _representation, _kalman_filter,
  File "statsmodels/tsa/statespace/_initialization.pyx", line 1, in init statsmodels.tsa.statespace._initialization
ImportError: dlopen(/Users/****/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/_representation.cpython-312-darwin.so, 0x0002): symbol not found in flat namespace '_npy_cabs'

平台信息

  • macOS 14.6.1
  • Python 3.12.5
  • Apple M2

可行解决方法

1. 更新statsmodels到兼容版本

Scipy 1.14.1可能引入了ABI(应用二进制接口)变化,旧版statsmodels未适配。执行以下命令更新:

pip install --upgrade statsmodels

2. 源码编译安装statsmodels

如果预编译的wheel包存在兼容性问题,可手动源码编译适配当前环境:

pip uninstall -y statsmodels
pip install --no-binary :all: statsmodels

3. 升级NumPy至兼容版本

报错中的_npy_cabs是NumPy的符号,确保NumPy版本与Scipy 1.14.1兼容:

pip install --upgrade numpy

4. 重建虚拟环境

若依赖存在隐性冲突,删除现有虚拟环境并重新安装所有依赖:

rm -rf venv
python3 -m venv venv
source venv/bin/activate
pip install scipy==1.14.1 pandas plotly statsmodels numpy

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:47:12