-->

【KNIME】(ナイム)KNIMEでPython(パイソン)を手軽に使う方法!Conda不要。Python Script (Labs)

2022/09/22

Knime Python

t f B! P L

この記事の概要

KNIME(ナイム)のPython Script(Labs)(パイソンスクリプト ラボ)について解説しています。

Python Script(Labs)はKNIME上でPythonプログラミングを行う事が出来るノードです。
Pythonを使用したプログラム処理をKNIME上で実現できます。

Python Script(Labs)はKNIMEに同梱されているPython環境を用いるので
非常に手軽にKNIMEでPythonノードを使う事が出来ます。

Condaなどの環境インストールは不要ですぐに使う事が出来る反面、使用できるライブラリは限られます。

Pythonを使用するノードは他にもPython ScriptやPython Sourceなどがありますが
これらは別途Condaの設定を行う必要があります。



Python(パイソン)をKNIME上で簡単に使用したい

Python Script (Labs)ノードの使用準備

どうもシャイン社員です。
今回はKNIME(ナイム)でPython(パイソン)を利用する方法についてご紹介します!

Knimeではノンコードで行列の計算処理や分析を行うことができます。
同様にPythonでもコードを書いて表計算や解析を行うことができます。

Pythonってなんぞや?という方は下記のページが分かりやすいので
ご覧ください!

今さら聞けない「Python」とは?Pythonとはどんな言語なのか!何ができるのかについて解説します。


Knimeのワークフローで処理を行っていると
処理の一部をPythonで行っているコードで実行したい」や
Pythonのモジュールを使うと楽なんだけどなぁ
という欲が出てくると思います。


そんなときに役に立つのがPythonノードです!

今回ご紹介するPython Script(Labs)は手軽にPythonを動かせるので
環境構築を面倒と感じる方には是非おすすめです!

従来のPythonノードとの違い

従来のPythonノードではPython環境を整備するのが手間がかかりました。

今回のPython Script (Labs)ではKNIMEにPythonの環境が同梱されているので
環境設定がほぼ不要でプログラミングが可能です!
ただし使用できるライブラリについては制限があるため、その点は注意が必要です。

制限なくライブラリを自由に追加したい場合は従来のPythonノードをご使用ください。

Python Script(Lab)に関するInfocomさんの公式ページはコチラです。
従来のPythonノードについては下記の記事でご紹介しておりますのでご覧ください。

今回はKNIME(ナイム)でPython(ぱいそn)を利用する方法についてご紹介します! Knimeではノンコードで行列の計算処理や分析を行うことができます。同様にPythonでもコードを書いて表計算や解析を行うことができます。合わせてSelenium(セレニウム)を使用する方法についても書いており

KNIMEのバージョンを確認する

まずはお使いのKNIMEのバージョンを確認しましょう。
バージョンが4.6.0以上であればOKです。

バージョンの確認方法はKNIME上部のメニューから
「Help」→「About KNIME Analytics Platform」をクリックです。


するとお使いのKNIMEのバージョンが表示されます。
下図の赤枠の部分の数字を確認しましょう。
ここの数字が4.6.0以上であれば問題ありません。



4.6.0未満のバージョンをお使いの方はKNIMEを最新版にアップデートします。
「File」→「Update KNIME...」をクリックして手順に沿ってアップデートを実施します。

Python Script(Lab)ノードの入手

続いてPython Script(Lab)のノードを取得します。
以前記事でご紹介したPython ScriptやPython Sourceとは違うノード
になりますのでご注意ください。

上部のメニューから「File」→「Install KNIME Extensions...」をクリックします。
すると拡張ノードをインストールする画面になりますので
検索窓にPythonと入力します。

Python関連の拡張ノードセットがずらっと出てきますので一番下のほうに出てくる
「KNIME Python Intefration(Labs)」にチェックを入れてNextをクリックします。




選択した拡張ノードで間違いないか確認されます。
Nextをクリック。


ライセンス規約が表示されます。
「I accept the terms of the license agreement」をチェックし
Finishをクリックします。


しばらくすると再起動するように表示が出ますので
「Rester Now」をクリックします。



これでノードの入手は完了しました。
 

Python (Labs)環境のセットアップ

続いてPython(Labs)環境設定を行います。

KNIMEのメニュー上部から
「File」→「Preferences」を選択します。



KNIME全般の設定画面が開きますので
左側のリストから「Python(Labs)」を選択します。
Python environment configurationの中で「Bundled」を選択して
Apply and Closeをクリックして完了です。


Python Script(Labs)ノードの配置と設定画面

それでは実際にPython Script (Labs)ノードを配置してみましょう。
左下の「Node Repository」窓にPythonと入力します。
Python Script(Labs)を選択しワークフローにドラック&ドロップします。




下記のようなノードになります。
Python Scriptノードとほぼおんなじですが
(Labs)と書いてあります。

続いて設定画面(Configure)について解説します。
こちらもPython ScriptやPython Sourceと同じですね。
下図のような感じです。


Pythonが正しく実行できるかチェックしてみましょう。
プログラムエディタに
print("Knimeでひねくれデータ解析")
と入力して「Execute script」 をクリックしてみましょう。
すると下記のように実行結果に「Knimeでひねくれデータ解析」と出力されます。
どうやちゃんと動作しているようですね。

Knime上では何の意味もありませんが…。



output_table_1にデータを入れることで
Pythonノードの出力にデータを格納できます。

Knimeのほかノードから入力されるデータはinput_table_1に格納されています。

たまにノードを実行しようとすると
下記のような警告が出ますが意図した動作なので
「アクセスを許可する」で問題ないです。


使用できるライブラリ

Python Script(Labs)では使用できるPythonライブラリが限られています。
使用できるライブラリは下記のとおりです。(2022年9月22日現在)

  • beautifulsoup4
  • cloudpickle
  • ipython
  • jedi<=0.17.2
  • matplotlib-base
  • nbformat
  • nltk
  • numpy>=1.22
  • pandas
  • packaging
  • pillow
  • py4j
  • pyarrow>=7
  • python=3.9
  • pytz
  • pyyaml
  • requests
  • scikit-learn
  • scipy
  • seaborn
  • statsmodels
これら以外のライブラリを使いたい場合はPython Scriptノードを使ってください。
ライブラリを追加する必要があります。

使用したいライブラリが含まれていない場合

使用したいライブラリが上記のリストに含まれていない
(Seleniumやlxmlなどを使いたい)ときは従来のPython Scriptノードを使用し
使用したいライブラリをCondaで追加する必要があります。

ライブラリ(モジュール)の追加方法についてはこちらで解説しています。

あとがき

いかがでしたでしょうか?
PythonノードのCondaの設定方法はなかなか上手くいかなくて挫折した人も多いはず…
KNIME同梱のPython環境でサクッとKNIMEとPythonの連携を使ってほしいですね!

それでは!





このブログを検索

注目の投稿

【KNIME】(ナイム)最強の表計算マクロソフト!KNIME(ナイム)のご紹介!使い方は?できることは?

この記事の概要 KNIME(ナイム)は表計算、マクロ動作を主機能とするフリーソフト。 エクセルと同等の機能を有しており、行列計算やグラフ描画可能。 ノードと呼ばれる箱を線で繋ぐことで計算処理を行う事が出来るため 関数名などを覚える必要はなく、処理の内容が分かりやすい。 Pytho...

スポンサー広告

スポンサー広告

QooQ