面临 ImportError: No module named discriminant_analysis 问题

3

我正在使用 Ubuntu 14.04,python=2.7,numpy=1.10.1,scikit-learn=0.17.1,scipy=0.17.1,但是在代码的导入部分,IDLESpyder(conda=4.1.3,conda-env=2.5.0a0)都出现了 Import Error:

import numpy as np
from sklearn.cross_validation import train_test_split
import csv
import pandas
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
from sklearn.tree import DecisionTreeClassifier 
from bs4 import BeautifulSoup   
import re
from sklearn.multiclass import OneVsRestClassifier
from sklearn.linear_model import SGDClassifier
from sklearn import neighbors
from sklearn.ensemble import RandomForestClassifier
from sklearn import metrics
from sklearn.svm import SVC
from sklearn.naive_bayes import GaussianNB
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
from sklearn.metrics import accuracy_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier

我遇到了以下错误:

导入错误:没有找到名为discriminant_analysis的模块

然而,在终端(Python)中,我尝试按照以下方式导入:LinearDiscriminantAnalysis
 from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

没有任何错误?!我不知道原因是什么,也不知道该怎么修复它。


我猜测你使用conda和pip两者都安装了一些东西,它们可能会查看不同的安装路径。你可以验证一下吗? - geompalik
是的,我已经检查过了,它已经通过pip和conda安装了。我可以看到它们安装在两个不同的位置,但您是指我是否应更改任何设置还是卸载其中一个? - Far
不是的。但是你可能安装了不同的版本,LinearDiscriminantAnalysis类可能被重命名或后来添加了。 - geompalik
1个回答

0

我曾经遇到过同样的问题。原来是安装了两个不同版本的scikit

  • /usr/lib/python2.7/dist-packages/sklearn/中的一个(没有discriminant_analysis模块);
  • /usr/local/lib/python2.7/dist-packages/sklearn/中的另一个(有该模块)。

终端和IDE指向的是不同的版本。

因此,您需要协调它们。在我的情况下,“协调”意味着使用以下命令卸载有问题的版本(即不包含该模块的版本):

sudo apt-get --purge remove python-sklearn


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接