导入错误:无法导入名称 inplace_column_scale

21 投票
7 回答
9414 浏览
提问于 2025-04-18 00:35

在使用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

我猜测问题出在:

  1. 旧版本的scikit-learn是用Windows的DLL文件来实现的
  2. 而现在的版本是用Python文件来实现的
  3. 如果你在旧版本上安装新版本,它不会删除旧的DLL文件
  4. 当你尝试导入时,Python会优先使用pyd文件,而不是py文件
  5. 但是旧的实现里没有这个功能

这说明安装新版本可能会引发更大的问题,建议在重新安装新版本之前,先删除整个sklearn文件夹。

撰写回答