首页 > 解决方案 > 如何解决:无法导入名称“logsumexp”

问题描述

我正在研究 Jupyter 笔记本。我的代码工作正常,但后来我为其他项目安装了 sklearn,现在我当前的代码停止工作。它突然开始显示“无法导入名称'logsumexp'”错误。

我试过升级 sklearn、scikit-learn 和 statsmodels。有人建议回滚到 scikit 0.18.02 模型会有所帮助,但这也不起作用。我认为此链接解释了错误“ https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.misc.logsumexp.html ”的原因,但我仍然不知道如何解决它。

这些是我当前的版本

scikit-learn 0.21.2
scipy 1.3.0
sklearn 0.0
statsmodels 0.9.0

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt
import statsmodels.api as sm
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-9-de89bb760177> in <module>
      3 import matplotlib.pyplot as plt
      4 from matplotlib import cm
----> 5 from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt
      6 import statsmodels.api as sm

~/.local/lib/python3.6/site-packages/statsmodels/tsa/api.py in <module>
     23 from .statespace.varmax import VARMAX
     24 from .statespace.dynamic_factor import DynamicFactor
---> 25 from .regime_switching.markov_regression import MarkovRegression
     26 from .regime_switching.markov_autoregression import MarkovAutoregression
     27 from .holtwinters import ExponentialSmoothing, SimpleExpSmoothing, Holt

~/.local/lib/python3.6/site-packages/statsmodels/tsa/regime_switching/markov_regression.py in <module>
     11 import statsmodels.base.wrapper as wrap
     12 
---> 13 from statsmodels.tsa.regime_switching import markov_switching
     14 
     15 

~/.local/lib/python3.6/site-packages/statsmodels/tsa/regime_switching/markov_switching.py in <module>
     13 from statsmodels.compat.collections import OrderedDict
     14 
---> 15 from scipy.misc import logsumexp
     16 from statsmodels.base.data import PandasData
     17 import statsmodels.tsa.base.tsa_model as tsbase

ImportError: cannot import name 'logsumexp'

标签: ubuntuscikit-learnjupyter-notebookstatsmodelssklearn-pandas

解决方案


我引用了Github 问题的答案:

statsmodels 0.9不兼容SciPy 1.3.0。当前master分支兼容,下个版本兼容。选项是降级 SciPy,安装在virtual- or conda-envwith 中SciPy 1.2,或者使用下面提供的代码从 master 分支安装

pip install --upgrade git+https://github.com/statsmodels/statsmodels


推荐阅读