无法在Google App Engine中使用TfidfVectorizer
我正在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仓库作为例子。