我正试图让Skikit通过Anaconda上的Spyder学习
C:\Anaconda3>conda --version
conda 4.3.4
C:\Anaconda3>python --version
Python 3.5.2 :: Anaconda 4.0.0 (64-bit)
Spyder 2.3.8
我尝试执行以下操作:
print("Scikit-Learn", sklearn.__version__)
NameError: name 'sklearn' is not defined
from sklearn.model_selection import *
from ..utils.fixes import rankdata
ImportError: cannot import name 'rankdata'
Errors
任何想法为什么这个错误会像Anaconda那样出现,它会显示包存在,但是当我通过Spyder时它会出现上述错误。
答案 0 :(得分:1)
当您使用anaconda时尝试:
conda update scikit-learn
Conda将尝试处理de依赖,它可能会更新其他软件包。
如果这不起作用,则位于<Anaconda_basedir>\lib\python3.5\site-packages\sklearn\utils
的文件fixes.py中有一行if sp_version < (0,13, 0):
,如果scipy的版本低于0.13则会调整导入rankdata
0.0。
由于原因,如果版本是&gt; 0.13.0它应该使用rankdata
中的scipy.stats
。但是,至少在我的情况下它不是,我做的是添加and False
,以便它从rankdata
获得scipy
。
最后一行是:
...
if sp_version < (0, 13, 0) and False:
def rankdata(a, method='average'):
...