在Nifi ExecuteScript中导入模块

vis*_*hnu 10 apache-nifi

我是Nifi和python的新手

我想执行我的python脚本.所以使用了ExecuteScript并尝试导入某些模块.我这样导入:

import json, sftp, paramiko
Run Code Online (Sandbox Code Playgroud)

虽然我安装了sftp,但是当我在Executescript中导入它时,它会显示"无法处理会话.在第1行没有名为sftp的模块"

which -a sftp
/usr/bin/sftp
Run Code Online (Sandbox Code Playgroud)

当导入paramiko时,也得到了同样的错误.

mat*_*tyb 12

ExecuteScript和InvokeScriptedProcessor使用的"python"引擎实际上是Jython,而不是纯Python.这意味着它无法加载本机模块(.so文件,已编译的C文件等).根据该SO后,使用的paramiko加密具有本地库,所以不能在Jython中使用(见底部此帖我对此有何评论).我的猜测是sftp库也是如此.

Jython可以使用纯Python模块,在NiFi邮件列表上讨论如何指向(并包括)这些模块.