ImportError: cannot import name 'comb'以及 'logsumexp'的解决方式

一个无语的晚上。

事情是这样的,在公司电脑上写好了代码,运行没问题,回家后却在import这一步就报错,可是两边电脑明明是同一个安装包,同一种安装方式的啊……

ImportError: cannot import name 'comb'

关于这个报错,百度了下资料太少,说是“scipy.misc中的comb位置已经移到scipy.special中”,可能跟更新了什么包的版本有关,一想,今天早晨出现其他报错的时候按照教程一股脑升级了几个包,难道是升级出问题了???

ImportError: cannot import name 'comb'

根据百度到的资料,看了下目前可能有问题的两个包的版本:

import scipy; print("SciPy", scipy.__version__)

import sklearn; print("Scikit-Learn", sklearn.__version__)

显示:

SciPy 1.5.2

Scikit-Learn 0.18.2

SciPy是现在的最新版本,但Scikit-Learn不是,网上说SciPy1.2.1版本更好一点,暂时不管,先把Scikit-Learn升级到现在最新版本0.23.2:

pip install --upgrade sklearn

运行,果然没有“ImportError: cannot import name 'comb'  ”了,但又出现下面的问题:ImportError: cannot import name 'logsumexp'……

ImportError: cannot import name 'comb'  

原因依旧是新版本的scipy,misc 中已经移除了logsumexp,改到scipy.special中了,看来还是得降级。

百度到的一段话,scipy1.2.X的版本提及率太高了,就回滚到这个版本吧,可直接pip特别慢,还总是安装到一半就报错……


无奈之下找了这么个链接,几秒钟就安装好了:

 pip install scipy==1.2.1 -i  https://pypi.tuna.tsinghua.edu.cn/simple/

重启jupyter,果然运行成功了,没有再报错!


总结:只要把scipy回滚到低版本(如1.2.1)就可以解决!这么简单的事搞了一晚上,小白的进阶之路充满了各种无语,记录一下。这次也带来了一点教训——不到万不得已,别轻易升级包,不然各种包不兼容就惨了~

你可能感兴趣的:(ImportError: cannot import name 'comb'以及 'logsumexp'的解决方式)