我试图在风暴中运行一个拓扑来调用python(例如:WordCountTopology),但是我遇到的错误与python3.5.2是我服务器上的默认python有关(错误是关于print命令的旧/新语法)。如何指定使用python2.7代替python3.5?将python别名设置为python2.7不会改变任何内容。任何帮助表示赞赏。
答案 0 :(得分:1)
我猜你正在使用ShellSpout / ShellBolt。在构造函数中,您可以指定执行子进程的命令,因此您可以将命令显式设置为python2.7。
例如,
public static class SplitSentence extends ShellBolt implements IRichBolt {
public SplitSentence() {
super("python", "splitsentence.py");
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("word"));
}
@Override
public Map<String, Object> getComponentConfiguration() {
return null;
}
}
您可以替换放置python2.7的“python”。所有管理节点都应该有文件到那个地方。