AlteryxのPythonツールで古いパッケージをインストールする方法
Alteryxには、Alteryx内でPythonを使える「Pythonツール」が提供されています。しかしながら、Pythonは独自に進化しているため徐々にバージョンアップしていきます。Alteryxは埋め込みPythonとしてある時点のバージョンのPythonを使用するため、利用しようとするパッケージと現在のPython、そしてAlteryxの埋め込みPython間のバージョンのマッチングの問題が出てくる可能性があります。
今回は、バージョンの関係でどうしても古いライブラリが使いたい、といった場合の方法をご紹介します。
Pythonのライブラリの依存関係を調べる
この記事では、SMOTEと呼ばれるオーバーサンプリングを行うためのPython用ライブラリを例にしてご紹介したいと思います。
Designer 2020.3でSMOTEが使いたい、という要望があったとします。このパッケージをインストールしようとすると、エラーがでます。メッセージ内容としては「Could not find a version that satisfies the requirement ...」という内容で、要求されたバージョンのライブラリがない、ということになります。
pypi.org fa-external-linkというサイトでライブラリ名で検索すると、公開されているPythonのライブラリが検索でき、依存関係を調べることができます。ここで調べてみると、imbalanced-learn 0.9.0は「Python (>= 3.7)」という記載があります。
Designer 2020.3の組み込みPythonは、Python 3.6.8です。2020.4から3.8.5対応となっています。つまり、Designer 2020.4以降であれば、imbalanced-learn 0.9.0が使えるということになります。
それでは、古いライブラリならPython3.7という条件なしで使えないのか?ということで、「Release history」を追ってみましょう。
0.9.0の前は0.8.1です。これの依存関係を見ると、
- scipy(>=0.19.1)
- numpy(>=1.13.3)
- scikit-learn(>=0.24)
- joblib(>=0.11)
- keras 2 (optional)
- tensorflow (optional)
とのことなので、Pythonのバージョンの依存はなさそうです。ということで、一つ前のライブラリを使えばなんとかなりそうです。
古いバージョンのライブラリを使用するには?
通常、AlteryxのPythonツールでライブラリを使うには、以下のように記載します。
Package.installPackages(['imblearn'])
それでは、古いバージョンをインストールするにはどうするか?ですが、通常のPythonの環境でPIPを使う場合は、
pip install imbalanced-learn==0.8.1
とのことです。
同じようにAlteryxで書けないか、、、
Package.installPackages(['imblearn==0.8.1'])
無事にこれで行けました!
AlteryxのPythonバージョンについておさらい
改めてAlteryxの埋め込みPythonのバージョンについて確認してみましょう。
基本的にはHelpのAlteryx 埋め込み Python fa-external-linkというページにまとめられていますので、こちらを参照下さい。
Alteryx Version | Pythonバージョン | Pythonバーチャル環境 |
---|---|---|
~2019.2 | 3.6.0 | 標準 |
2019.3~2020.3 | 3.6.8 | Conda |
2020.4~ | 3.8.5 | Conda |
Python自体は2022年3月時点ですでに3.10まで出ているので、また1年くらいするとアップデートがあるかもしれませんが、埋め込みPythonのバージョンが変わる時はPythonベースのツールやマクロの更新も必要だったりしますので、利用されている方はご注意下さい。
まとめ
- Alteryxには埋め込みPythonのバージョンが決まっていて、対応するライブラリしか使えない
- 依存関係はpypi.org fa-external-linkというサイトで確認可能
- 古いバージョンのライブラリを使う場合、Package.installPackages(['imblearn==0.8.1'])という形式でインストール可能
- Alteryxの埋め込みPythonのバージョンが変わると、Pythonベースのツールは更新が必要
Alteryx Designer バージョン2021.4.1.04899時点の情報です。
written by AkimasaKajitani