ImportError:无法导入名称inplace_column_scale

use*_*153 21 python scikit-learn

使用带有scikit-learn 0.14包的Python 2.7.它在用户公会期望线性模型的一些例子中运行良好.

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
Run Code Online (Sandbox Code Playgroud)

谢谢〜

Pet*_*vaz 29

我能够通过转到我的python文件夹并删除文件来解决这个问题:

python27\Lib\site-packages\sklearn\utils\sparsefuncs.pyd
Run Code Online (Sandbox Code Playgroud)

我的猜测是问题是:

  1. 较旧版本的scikit-learn将sparsefuncs实现为windows DLL
  2. 当前版本将其实现为python文件
  3. 如果在旧版本之上安装新版本,则不会删除旧版本的DLL
  4. 当您尝试导入时,Python优先使用pyd而不是py实现
  5. 但旧的实现不包括此功能

这表明安装新版本可能会导致更大的问题,在重新安装新版本之前删除整个sklearn目录可能是明智之举.


小智 18

我在Mac Os遇到了同样的问题.

我通过手动删除文件解决了它:

rm /usr/local/lib/python2.7/site-packages/sklearn/utils/sparsefuncs.so

  • 在ubuntu中,删除/usr/local/lib/python2.7/dist-packages/sklearn/utils/sparsefuncs.so为我工作. (3认同)
  • 在Ubuntu/Anaconda中,删除`anaconda/lib/python2.7/site-packages/sklearn/utils/sparsefuncs.so`文件对我有用. (2认同)