首页 > 解决方案 > NIFI EXECUTESCRIPT 处理器失败 - 未找到模块

问题描述

我正在尝试将模块导入 nifi 中的 executescript 处理器。正如建议的那样,我正在提供模块目录的完整路径。

示例:模块目录:/var/lib/nifi/Levenshtein --> 其中包含脚本所需的文件。

此外,在脚本中,我还设置了指向使用该模块目录的系统路径我的代码看起来像这样

import re
import datetime
import sys
sys.path.append('/var/lib/nifi/Levenshtein')

import Levenshtein

当我使用上述代码运行处理器时,它失败了。

错误:第 3 行没有名为 Levenshtein 的模块。

标签: apache-nifijythonexecute-scriptflowfile

解决方案


如果此特定库是“本机模块”(编译的 C 代码),Jython(由 使用的 Python 执行引擎ExecuteScript)将无法加载它。ExecuteScript在 NiFi 中使用 Python 只能使用纯 Python 代码。

解决方法是在命令行上使用ExecuteProcessorExecuteStreamCommand和调用python <my_script.py>,它可以处理各种 Python 版本、本机模块等。此执行将发生在 JVM 之外并使用真正的 Python,而不是 Jython。


推荐阅读