在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"。所有主管节点都应该有到那个地方的文件。
我正在尝试 运行 调用 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"。所有主管节点都应该有到那个地方的文件。