导入时 sklearn 'preprocessor' 子模块不可用

sklearn 'preprocessor' submodule not available when importing

我发现了其他一些帖子,例如 this one 抱怨无法导入有关 sklearn 的一些东西,但我已经尝试了所有建议的解决方案(归结为:pip3 install -Uapt install 在所有情况下,也在帖子中询问 preprocessor 以外的问题),但它仍然无济于事。

我遇到的问题是:

>>> import sklearn
>>> sklearn.__version__
'0.20.3'
>>> sklearn.preprocessor
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'sklearn' has no attribute 'preprocessor'
>>> from sklearn import preprocessor
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'preprocessor'

安装假定正确的软件包时的输出如下:

$ pip3 install -U scikit-learn
Collecting scikit-learn
  Using cached https://files.pythonhosted.org/packages/5e/82/c0de5839d613b82bddd088599ac0bbfbbbcbd8ca470680658352d2c435bd/scikit_learn-0.20.3-cp36-cp36m-manylinux1_x86_64.whl
Collecting numpy>=1.8.2 (from scikit-learn)
  Using cached https://files.pythonhosted.org/packages/35/d5/4f8410ac303e690144f0a0603c4b8fd3b986feb2749c435f7cdbb288f17e/numpy-1.16.2-cp36-cp36m-manylinux1_x86_64.whl
Collecting scipy>=0.13.3 (from scikit-learn)
  Using cached https://files.pythonhosted.org/packages/7f/5f/c48860704092933bf1c4c1574a8de1ffd16bf4fde8bab190d747598844b2/scipy-1.2.1-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: numpy, scipy, scikit-learn
Successfully installed numpy-1.16.2 scikit-learn-0.20.3 scipy-1.2.1

或:

$ sudo apt autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 49 not upgraded.

如您所见,应该可以通过两种不同的方式正确安装软件包,但仍然无法正常工作。我也试过卸载其中一个(以防它们相互干扰),但这也没有解决任何问题。

有谁知道为什么这对我不起作用?如果我需要提供有关我的安装的任何其他信息,我很乐意提供。

我以前也遇到过这种情况,下面是解决方法

import sklearn.preprocessing # or from sklearn import preprocessing