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

In storm, how to specify specific version of python

我正在尝试 运行 调用 python 的风暴拓扑(例如:WordCountTopology),但我遇到了与 python3.5 相关的错误.2 是我服务器上的默认值 python(错误与打印命令的 old/new 语法有关)。如何指定 storm 使用 python2.7 而不是 python3.5?将 python 别名设置为 python2.7 不会改变任何内容。任何帮助表示赞赏。

我猜你正在使用 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"。所有主管节点都应该有到那个地方的文件。