如何修复:无法导入名称“ logsumexp”

时间:2019-06-19 11:11:57

标签: ubuntu scikit-learn jupyter-notebook statsmodels sklearn-pandas

我正在研究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学习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'

2 个答案:

答案 0 :(得分:1)

引用Github issue中的答案:

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

从master分支安装。

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

答案 1 :(得分:0)

升级软件包:

在statsmodel 0.10.1上不会发生

pip install -U scikit-learn scipy statsmodels

如果每次都希望有一个稳定的环境,我建议使用conda固定版本,而不是升级单个软件包。