ImportError: No module named naive_bayes

ImportError: No module named naive_bayes

我刚刚安装了sklearn,我的程序导入代码后运行没有问题。但是,每当我尝试访问 naive_bayes 模块时,我都会收到此错误:

ImportError: No module named naive_bayes

这是我导入它的方式:

from sklearn.naive_bayes import GaussianNB

不确定我哪里出错了,非常感谢任何帮助!

似乎 sklearn 安装不包含 naive_bayes 在您的安装中。如果 sklearn 安装正确,它会说

ImportError: No module named 'sklearn.naive_bayes2'

但是,在您的情况下,导入错误显示的输出有点不同。请检查版本和 运行 测试文件。

本着 "turn it off, and turn it back on again" 解决方案的精神,考虑到当您尝试打印 scikit-learn 版本(应该在任何自关于 Python 模块),我建议您卸载并重新安装 scikit-learn:

pip uninstall sklearn
pip install sklearn

运行 以下命令,并与提供的输出进行比较,以确保程序包的行为符合应有的方式:

>>> import sklearn
>>> print(sklearn.__version__)
0.19.0
>>> print(sklearn.__file__)
/usr/local/lib/python3.6/site-packages/sklearn/__init__.py
>>>

打印 sklearn.__file__ 的输出不需要完全匹配,但它至少应该打印 一些 您计算机上的位置。

此外,请检查以确保您的 pip 与您的 python 匹配。这取决于您使用的平台,但是版本 2 和版本 3 的这种混合有时会产生令人讨厌的鸡尾酒。执行 pip --version 应该会告诉您它绑定到哪个版本的 Python。

$ which pip3
/usr/local/bin/pip3

$ pip3 --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ which python3
/usr/local/bin/python3

您应该可以使用 Python 版本 2,只要匹配即可。

(肥皂盒时刻:如果您没有充分理由坚持使用 Python 2,请转到 Python 3!)

我在通过 pip 安装 sklearn 和 scikit-learn 时遇到了同样的问题。

我通过以下步骤解决了这个问题

  1. pip 卸载 sklearn(如果已经安装)
  2. pip uninstall scikit-learn(如果已经安装)
  3. git 克隆 scikit-learn
  4. cd scikit-learn
  5. python setup.py 安装

希望对您有所帮助。