我刚刚安装了sklearn,当我将其导入代码时,我的程序没有问题。但是,每当我尝试访问naive_bayes
模块时,我都会得到此错误:
ImportError: No module named naive_bayes
这是我的导入方式:
from sklearn.naive_bayes import GaussianNB
不确定我要在哪里出错,任何帮助都非常感谢!
以"将其关闭,然后重新打开"解决方案,并在尝试打印Scikit-Learn版本时获得Module has no attribute: __version__
(应在任何自尊的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!)
看来,Sklearn安装在您的安装中不包括Naive_bayes。如果Sklearn安装正确,它将说
之类的东西ImportError: No module named 'sklearn.naive_bayes2'
但是,在您的情况下,导入错误显示出一些不同的输出。请检查版本并运行测试文件。
我在通过pip安装sklearn和scikit-learn时遇到了相同的问题。
我通过以下步骤解决了问题
- PIP卸载Sklearn(如果已经安装)
- pip卸载scikit-learn(如果已经安装)
- git克隆scikit-learn
- CD Scikit-Learn
- python setup.py安装
希望这对您有帮助。