无法在Google App Engine中使用TfidfVectorizer

2 投票
2 回答
1600 浏览
提问于 2025-04-18 03:22

我正在Google App Engine上写一个Python程序,这个程序用sklearn里的TfidfVectorizer来计算tf-idf。

我已经添加了sklearn库,并且导入的代码是:

from sklearn.feature_extraction.text import TfidfVectorizer

但是它给我报错,提示no module named _check_build,尽管这个模块在我导入的库里。

注意:我在纯Python环境下运行相同的代码是没问题的,所以Python的语法和导入没有问题;问题出现在GAE上。

你知道有什么方法可以解决这个问题吗?

2 个回答

4

你不能这样做。sklearn这个库有很多依赖于‘c’语言的部分,通常任何名字前面带有_的模块都是二进制模块。

所以你会看到“没有名为 _check_build 的模块”的错误信息。

我真的怀疑即使你伪造一些‘c’语言的库,它也能运行,除非这些库有纯Python的替代品。

我以前也遇到过这种情况,有些库同时有基于‘c’语言的高性能版本和纯Python版本。

0

如果你没有使用任何专门针对GAE的工具,可以试着把你的应用部署到Heroku上。这个平台可以让你部署一个完整的虚拟环境,里面包含你需要的所有库。特别是,Scikit-learn在Heroku上运行得很好。你可以查看这个Github仓库作为例子。

撰写回答