2016-11-21 20 views
7

Nifi ve pythonNifi ExecuteScript'te İçe Aktarım Modülleri

için yeniyim python betiğimi yürütmek istiyorum. Böylece, ExecuteScript kullanıldı ve belirli modülleri almaya çalıştı. Böyle ithal var:

i Executescript bunu ithal zaman, "oturumu işlenemedi Hiçbir modül adlı sftp hat 1 numaraya." Diyor

which -a sftp 
/usr/bin/sftp 

i Sftp yüklü olmasına rağmen

import json, sftp, paramiko 

, Ayrıca paramiko içe aktarırken aynı hatayı aldım.

cevap

10

ExecuteScript ve InvokeScriptedProcessor tarafından kullanılan "python" altyapısı aslında Jython, salt Python değil. Bu, yerel modülleri (.so dosyaları, derlenmiş C dosyaları, vb.) Yükleyemediği anlamına gelir. this SO post'a göre, paramiko, yerel kitaplıklara sahip olan Crypto'yu kullanır, bu nedenle Jython'da kullanılamaz (bunun hakkında yorum yapmak için this post'un altına bakın). Tahminimce sftp kütüphanesi aynı şeyi yapıyor.

Jython, saf Python modülleri kullanabilir, a discussion on the NiFi mailing list, bu tür modüllerin nasıl işaret edileceği (ve dahil edileceği) hakkındadır.

+0

"Modül Dizini" özelliğini nasıl ayarlamalıyım, böylece ExecuteScript 'pip' yüklü modülleri kullanır? – Dan

İlgili konular