scikit惊喜:python无法找到模块,即使pip将其列为已安装

scikit惊喜:python无法找到模块,即使pip将其列为已安装,python,python-import,importerror,Python,Python Import,Importerror,我试图使用scikit惊奇模块来构建一个推荐系统,但是我在编译时遇到了一个错误 我收到导入错误:无法导入名称“Reader”错误 我的课程如下 import pandas as pd from surprise import Reader, Dataset userReviewsFilePath ="UserReviewsFirst5000WithHeadings.csv" ratings = pd.read_csv(userReviewsFilePath) # reading data in

我试图使用scikit惊奇模块来构建一个推荐系统,但是我在编译时遇到了一个错误

我收到导入错误:无法导入名称“Reader”错误

我的课程如下

import pandas as pd
from surprise import Reader, Dataset

userReviewsFilePath ="UserReviewsFirst5000WithHeadings.csv"
ratings = pd.read_csv(userReviewsFilePath) # reading data in pandas df

ratings_dict = {'recipeID': list(ratings.recipeID),
                'rating': list(ratings.rating),
                'userID': list(ratings.userID)}
df = pd.DataFrame(ratings_dict)

reader = Reader(rating_scale=(1, 5))

data = Dataset.load_from_df(df[['recipeID', 'rating', 'userID']], reader)

pip show说安装了1.0.6版

我想这是出乎意料的

您的代码应为:

from surprise.reader import Reader
from surprise.dataset import Dataset
编辑:我再次检查了说明,它似乎与此相矛盾,并给出了您的原始代码作为正确的示例

所以他们可能会增加自己的捷径?不管怎样,这似乎不是正确的解决方案,抱歉。(除非有效,否则他们的指示可能已经过时。)


编辑2:他们确实给它起了别名,所以“来自惊喜导入阅读器”确实应该起作用:

我想你需要这样做


来自惊奇。reader导入reader

我认为您的问题来自安装。。。我安装了“惊喜”并通过了您的代码,它成功了:

import pandas as pd
from surprise import Reader, Dataset
print(Reader) # or just print(surprise) if you import surprise
输出:


为了查看您是否在使用过的python版本上安装了惊奇,我将其更改为“来自惊奇导入读取器,数据集”,但我仍然收到错误“ImportError:无法导入名称'reader'”。我对代码进行了更改,并收到ModuleNotFoundError:没有名为'惊奇.reader';'“惊喜”不是软件包您安装了惊喜还是scikit惊喜?我安装了惊喜。我将与scikit惊喜进行检查。我卸载了scikit惊喜,然后自己重新安装了scikit惊喜,错误仍然存在。当运行您在评论顶部留下的小代码snippit时,它也会出现。您是否检查了安装了哪个版本的python?我的计算机上是否安装了python 3.6.7?您是否已尝试正确安装/重新安装scikit?如果您是windows用户,请尝试以下操作:
conda安装-c conda forge scikit
,可以找到更多信息
<class 'surprise.reader.Reader'>
which pip