我正在尝试使用Shell Bolt和Python Bolt运行Apache Storm拓扑。 在我的螺栓中,我使用的是spacy库,该库已经安装在/ home / labuser / anaconda3 / bin / python中。 但是,当我运行拓扑风暴时,显示错误消息模块找不到空余。 调试后,我发现Storm使用的是位于/ usr / bin / python中的python 2.7。
我的问题是对以下问题的扩展, In storm, how to specify specific version of python
按照上述问题的答案,我尝试使用super(“ home / labuser / anaconda3 / bin / python”,“ splitsentence.py”)创建外壳螺栓;构造函数,但Storm继续在/ usr / bin / python目录中获得2.7。
我需要知道如何告诉Storm在我的shell螺栓中使用home / labuser / anaconda3 / bin / python目录中的python3。
答案 0 :(得分:0)
事实证明,在实现的shell螺栓的构造器中指定要使用的python版本是答案。我最初尝试了此版本,但由于其他一些构建问题,它失败了。全新的版本,现在可以使用了。
public static class SplitSentence extends ShellBolt implements IRichBolt {
public SplitSentence() {
super("home/labuser/anaconda3/bin/python", "splitsentence.py");
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("word"));
}
@Override
public Map<String, Object> getComponentConfiguration() {
return null;
}
}
全部感谢这个答案 In storm, how to specify specific version of python
如果还有其他问题,请务必阅读 http://storm.apache.org/releases/2.0.0-SNAPSHOT/Multilang-protocol.html