LoginSignup
6
3

More than 3 years have passed since last update.

IBM i にPythonの実行環境を作る

Posted at

IBM iでもyumでPythonをさくっとインストール

yumが使えるようになったIBM iはPythonに限らず、さまざまなオープンソースの実行環境を簡単に作れます。
事前にyumをインストールする手順はこちら(IBM i でyumを使う)の記事を参考にしてください。

Python2はyum導入時に一緒にインストールされているので、ここから先はPython3の環境をセットアップしていきます。

Python3のインストールにはACSのGUIか、SSHのCLIが使えます。

方法1:Python3をACSのGUIでインストール

ACSを起動して[ツール]メニューの[オープン・ソース・パッケージ管理]を開きます。
image.png
Python3を導入するSystemとUSRPRFを指定して[OK]で進みます。
スクリーンショット 2019-11-14 10.21.29.png
Available packagesのタブに、導入可能なパッケージ一覧が確認できます。Python3のパッケージも随時追加されているようです。
image.png
ここではまず、2つのパッケージ python3python3-pip を選択して[install]ボタンを押しました。
image.png
別ウィンドウが起動して、yum installコマンドが実行されます。依存関係がある別パッケージも同時に選択されていることがわかります。yでインストールを実行します。
image.png
導入完了を確認します。
image.png
ACSのGUIで簡単にPythonが導入できます。他にも必要なパッケージがあれば、同様の手順で追加インストールできます。

方法2:SSHクライアントからyumコマンドでインストール

ACSのGUIを使うだけでなく、Linuxと同様にSSHクライアントのCLIで操作することももちろんできます。
SSHターミナルでibmiに接続します。

$ ssh user@ibmi

bashを使います。

$ bash

python3関連のパッケージを確認します。

bash-4.4$ yum list | grep python3
python3.ppc64                                3.6.9-1                   @ibm
python3-pip.noarch                           9.0.1-2                   @ibm
python3-setuptools.noarch                    36.0.1-2                  @ibm
python3-wheel.noarch                         0.29.0-2                  @ibm
python3-Pillow.ppc64                         5.0.0-4                   ibm
python3-asn1crypto.noarch                    0.24.0-0                  ibm
python3-bcrypt.ppc64                         3.1.4-5                   ibm
python3-cffi.ppc64                           1.11.5-2                  ibm
python3-cryptography.ppc64                   2.2.2-4                   ibm
python3-dateutil.noarch                      2.7.5-0                   ibm
python3-devel.ppc64                          3.6.9-1                   ibm
python3-ibm_db.ppc64                         2.0.5.9-0                 ibm
python3-idna.noarch                          2.8-0                     ibm
python3-itoolkit.ppc64                       1.6.1-0                   ibm
python3-lxml.ppc64                           4.2.1-3                   ibm
python3-numpy.ppc64                          1.15.4-0                  ibm
python3-pandas.ppc64                         0.22.0-4                  ibm
python3-psutil.ppc64                         5.5.1-0                   ibm
python3-pycparser.ppc64                      2.19-1                    ibm
python3-pynacl.ppc64                         1.2.1-3                   ibm
python3-pytz.noarch                          2018.5-2                  ibm
python3-pyzmq.ppc64                          17.1.2-0                  ibm
python3-rpm.ppc64                            4.13.0.1-17               ibm
python3-scikit-learn.ppc64                   0.19.1-6                  ibm
python3-scipy.ppc64                          1.1.0-0                   ibm
python3-six.noarch                           1.10.0-0                  ibm
python3-tkinter.ppc64                        3.6.9-1                   ibm

numpy と pandas を追加で導入してみます。

bash-4.4$ yum install python3-numpy python3-pandas
Setting up Install Process

(中略)

===================================================================================================================
 Package                          Arch                    Version                      Repository             Size
===================================================================================================================
Installing:
 python3-numpy                    ppc64                   1.15.4-0                     ibm                   6.3 M
 python3-pandas                   ppc64                   0.22.0-4                     ibm                    20 M
Installing for dependencies:
 libblas3                         ppc64                   3.8.0-0                      ibm                   173 k
 libcblas3                        ppc64                   3.8.0-0                      ibm                    49 k
 libgcc-aix                       fat                     6.3.0-24                     ibm                   472 k
 libgfortran3                     ppc64                   6.3.0-24                     ibm                   1.0 M
 liblapack3                       ppc64                   3.8.0-0                      ibm                   3.4 M

Transaction Summary
===================================================================================================================
Install       7 Packages

Total download size: 31 M
Installed size: 147 M
Is this ok [y/N]: y

(中略)

Installed:
  python3-numpy.ppc64 0:1.15.4-0                          python3-pandas.ppc64 0:0.22.0-4

Dependency Installed:
  libblas3.ppc64 0:3.8.0-0    libcblas3.ppc64 0:3.8.0-0  libgcc-aix.fat 0:6.3.0-24  libgfortran3.ppc64 0:6.3.0-24
  liblapack3.ppc64 0:3.8.0-0

Complete!

yumコマンドでも簡単に追加ができました。
SSHクライアントであれば、IBM iだと意識せずに、yumコマンドでオープンソース環境を管理できます。

Pythonの起動確認

sshクライアントでPython3を起動してみます。

bash-4.4$ python3
Python 3.6.9 (default, Oct 31 2019, 11:30:53)
[GCC 6.3.0] on aix7
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import pandas as pd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/QOpenSys/pkgs/lib/python3.6/site-packages/pandas/__init__.py", line 19, in <module>
    "Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['pytz', 'dateutil']

pandas をインポートしたら pytzdateutil がないというエラーが出ました。Pythonなのでpipで追加することを考えますが、IBM iでは、yumパッケージとして提供されている場合があるのでyumを先に確認します。

>>> exit()
bash-4.4$ yum list | grep python3
(中略)
python3-dateutil.noarch                      2.7.5-0                   ibm
(中略)
python3-pytz.noarch                          2018.5-2                  ibm

2つともyumにあったので、yumでインストールします。

bash-4.4$ yum install python3-dateutil python3-pytz

再度Python3を起動してpandasをインポートしてみます。

bash-4.4$ python3
Python 3.6.9 (default, Oct 31 2019, 11:30:53)
[GCC 6.3.0] on aix7
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import pandas as pd
>>> data = pd.Series([1.0, 2.4, 5.3, 7], index=['a', 'b', 'c', 'd'])
>>> data
a    1.0
b    2.4
c    5.3
d    7.0
dtype: float64
>>> exit()

IBM i 上にPython3の実行環境ができました。

最後に

IBM iでも、Pythonの環境を簡単に準備できます。yumをサポートしたので基本的にはCLIで管理できますが、ACSでGUIのインターフェースも用意しているのがIBM iらしく思えます。
PCでもPythonを動かせますが、IBM iをPython環境として整備すれば、IBM iのデータを扱いやすくなりますし、チームでの開発もしやすいのではないでしょうか。

この記事の方法では、Python3の実行環境をroot環境に作っていますが、chrootを使えばコンテナのように環境仮想化ができるので、目的に合わせてパッケージの組み合わせを選んだり、root環境をクリーンに保ったまま、オープンソースを活用することもできます。

次回はchrootを使って仮想環境を作った上で、jupyter notebookを動かしたいと思います。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3