2017-08-03 14 views
0

私はNiFiのExecuteScriptプロセッサでPythonスクリプトを実行しようとしています。ここでのキャッチはサーバーファイルのアクセス権がなく、すべてのPythonライブラリが "/ data/jython"、 "/ data/jython/Lib/site-packages /"と "data/nltk"にインストールされていることです。Nifi ExecuteScriptプロセッサからPythonライブラリを参照できません

以下は

私のPythonスクリプトのインポートセクションです:

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 

私はパッケージ/ライブラリへのパス参照追加しました:エラーメッセージの enter image description here

HERESにスクリーンショット: enter image description here

を3210

私には何かがありますか?私は別の答えhereを参照しましたが、私のコードで何が間違っているのか理解できませんでした。

答えて

2

は、他の回答の状態としては、ApacheのNiFiのExecuteScriptプロセッサはJythonの、ないPythonのを使用しています。 Jythonライブラリには、ネイティブモジュール(.soで終わるモジュールまたはコンパイルされたCコードなど)を処理できないという制限があります。 pycountryモジュールには、いくつかのネイティブモジュールが含まれている可能性が非常に高いです。あなたはNiFi Developers Mailing List hereのMatt Burgessによって提案された回避策を試すことができます。

+0

私はsys.path.append()を使ってライブラリパスを追加しようとしました。また、モジュールディレクトリへのパスを追加しようとしましたが、動作しませんでした。 – atulshgl

+0

@Andyが上で述べたように、使用しているモジュールの中には、ネイティブにコンパイルされたコードを使用しているものがあります。 mattybの答え[here](https://stackoverflow.com/questions/40719469/import-modules-in-nifi-executescript/40722026#40722026)を参照してください。 –

関連する問題