簡體   English   中英

無法從Nifi ExecuteScript處理器引用python庫

[英]Unable to refer python libraries from Nifi ExecuteScript processor

我一直在嘗試在NiFi的ExecuteScript處理器中運行python腳本。 盡管這里的問題是我沒有服務器文件位置訪問權限,並且所有python庫都安裝在“ / data / jython”,“ / data / jython / Lib / site-packages /”和“ data / nltk”下

以下是我的python腳本的import部分:

import json, traceback, pycountry, requests, geocoder, re, sys, nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer
from nltk.corpus import stopwords
from java.nio.charset import StandardCharsets
from org.apache.commons.io import IOUtils
from org.apache.nifi.processor.io import StreamCallback
from org.python.core.util import StringUtil

我添加了對軟件包/庫的路徑引用: 在此處輸入圖片說明

以下是錯誤消息的屏幕截圖: 在此處輸入圖片說明

我有什么想念的嗎? 我在這里提到了另一個答案,但無法弄清楚我的代碼有什么問題。

在其他答案中,Apache NiFi的ExecuteScript處理器使用Jython而不是Python Jython庫有一個限制,即它不能處理本機模塊(以.so結尾或已編譯的C代碼等的模塊)。 pycountry模塊很可能包含一些本機模塊。 您可以在此處NiFi開發者郵件列表中嘗試Matt Burgess提出的解決方法。

ExecuteScript處理器使用其自己的Jython引擎執行您的python腳本。 由於要導入的庫在NIFI inbuild Jython Engine中不可用,因此會引發拋出錯誤。

解:

如果我們的計算機上已經安裝了所有這些庫(所有安裝了NIFI的計算機),則可以使用該python引擎執行腳本。 您可以使用ExecuteProcess處理器執行python代碼。 請參閱ExecuteProcess的配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM