在风暴中,如何指定python的特定版本

时间:2017-01-25 18:49:07

标签: python-2.7 python-3.x apache-storm

我试图在风暴中运行一个拓扑来调用python(例如:WordCountTopology),但是我遇到的错误与python3.5.2是我服务器上的默认python有关(错误是关于print命令的旧/新语法)。如何指定使用python2.7代替python3.5?将python别名设置为python2.7不会改变任何内容。任何帮助表示赞赏。

1 个答案:

答案 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”。所有管理节点都应该有文件到那个地方。