导入错误:无法导入名称 inplace_column_scale
在使用Python 2.7和scikit-learn 0.14这个软件包时,运行一些用户指南中的例子都很顺利,除了线性模型的部分。
Traceback (most recent call last):
File "E:\P\plot_ols.py", line 28, in <module>
from sklearn import datasets, linear_model
File "C:\Python27\lib\site-packages\sklearn\linear_model\__init__.py", line 12, in <module>
from .base import LinearRegression
File "C:\Python27\lib\site-packages\sklearn\linear_model\base.py", line 29, in <module>
from ..utils.sparsefuncs import mean_variance_axis0, inplace_column_scale
ImportError: cannot import name inplace_column_scale
谢谢~
7 个回答
0
我也遇到过同样的问题。最开始我通过以下方式安装了 scikit-learn
:
sudo apt-get install python-sklearn
当这里其他的解决办法都没用时,我决定先卸载我现在的 scikit-learn
版本,然后再重新安装:
pip2 install --user --install-option="--prefix=" -U scikit-learn
我使用了 pip2
,因为我有两个版本的 Python,所以我在 Python 2.7 中使用 scikit-learn
。
1
我解决这个问题的方法是:
pip uninstall scikit-learn
别忘了在Python的'site-packages'文件夹里删除'sklearn'文件夹。
rm -rf /path/Python-2.7.5/lib/python2.7/site-packages/sklearn/
然后重新安装这个包:
pip install scikit-learn
4
对我来说,唯一有效的办法就是先卸载 scikit-learn
,然后再重新安装它:
pip uninstall scikit-learn
pip install scikit-learn
18
我在Mac Os上也遇到了同样的问题。
我通过手动删除文件来解决这个问题:
rm /usr/local/lib/python2.7/site-packages/sklearn/utils/sparsefuncs.so
29
我通过去我的Python文件夹,删除了一个文件来解决这个问题:
python27\Lib\site-packages\sklearn\utils\sparsefuncs.pyd
我猜测问题出在:
- 旧版本的scikit-learn是用Windows的DLL文件来实现的
- 而现在的版本是用Python文件来实现的
- 如果你在旧版本上安装新版本,它不会删除旧的DLL文件
- 当你尝试导入时,Python会优先使用pyd文件,而不是py文件
- 但是旧的实现里没有这个功能
这说明安装新版本可能会引发更大的问题,建议在重新安装新版本之前,先删除整个sklearn文件夹。