Python

8. Pythonの インストール (1)

Pythonはオープン・ソース・プロジェクトの時代には
IBM iにもプレ・インストールされていて
使うことができた。
 _

OS/400 Ver Python 導入 bottle ibm-db
7.1 5733OPS Python 3.4.6 bottle (0.12.8) ibm-db (2.0.5.4)
7.2 5733OPS Python 3.4.6 bottle なし ibm-db なし
7.3 5733OPS Python 3.4.6 bottle (0.12.8) ibm-db (2.0.5.4)
7.4 Python 3.6.8 bottle なし ibm-db (2.0.5.9)
7.5
7.6

bottle = Python付属のHTTPサーバーの意味
ibm-db = IBM提供のDB2/400データ・ベース・SQLアクセス・モジュール

OS400 Ver7.4~ Pythonのプレ・インストールが無くなったのは
Pythonが Yum という名前の専用インストーラを公開したために
IBM も Yum のインストールしてからPythonをユーザーが自分で
インストールするように推奨したためにフレ・インストールが廃止された。

■ 動かない Pythonのインストール

 インターネットなどでよく公開されているPythonの導入手順は


① STRTCPSVR *SSHD で SSHDを開始する

② IBM ACSで yum を導入する

③ yum を使って Pythonを導入する


 という紹介である。
 しかしこれはどれもほとんど動かない
_

① STRTCPSVR *SSHDは 最新PTF適用済のOS Ver7.1~7.5 において
 すべての環境で全く動作しない。(最新の累積PTF適用済み)
エラー・メッセージも表示されないので対処の方法がない。

②ACSで手順どおりに操作しても全く反応がない。

ということが現実である。
おそらくこの執筆者は英語環境のマニュアルをそのまま
日本語に丸写ししただけなのだろう。
_

以前にもこのような投稿があったが
技術者が自分で実行も確認もせずにあたかも動作したかのような
記事を投稿することは誠にあってはならないことである。
英語環境では動いたとしても日本語環境では全く動作しないということは
よくあることである。

■ ① STRTCPSVR *SSHDの代替操作

他の特約店に問い合わせが多かったようで
PASE環境から *SSHD を起動する方法が紹介されていたので
紹介する。

STRQSH でPASE環境を起動

 ssh-keygen -A
 QSH CMD('/QOpenSys/usr/sbin/sshd')

→ NETSTAT OPTION(*CNN) でポート22の存在を確認する

 この方法であれば SSHD は正しく起動を開始する。
 しかし ② yum を使って Pythonを導入する
という手順は相変わらずすべてのOS Verで動かないので
 この①~③で Pythonを導入することはできない。
_

■ 正しいPythonの導入方法

㈱オフイスクアトロでは

RPM pile for IBM i releases in standard support
 
を参照して正しく Pythonの導入に成功した。
ただしこれは英文サイトだけであり導入には25分以上かかった。
しかしこの方法ですべてのPythonリリースとbottleも導入することができたので
Python 3.6.8 + bottle + ibm-db を自社のVer7.1に導入した。

■ Python のバージョンによる比較考慮点

またよくIBM iのPythonを導入してIBM iのDB2/400をPythonで
表示したという記事も非常に怪しい。
というのも Ver7.1~7.3でプレ・インストールされていた
Python 3.4.6 では DB2/400の日本語表示はかなり
文字化けが多くて実用レベルではなくほとんどが
正しく表示されない
_

日本語表示がPythonで正しく表示されるのは
Python 3.6.8になってからである。
3.6.8 が導入されているのは Ver7.4 だけであるが
Ver7.4 では Bottleが導入されていないので
Web表示はできないはずである。
だから一体どうやって日本語を表示したのだろう? と
いうことになる。

Python Ver 動作環境 日本語表示 IBM i OS Ver bottle
3.4.6 32 bit 日本語文字化けが多い Ver7.1~7.3
3.6.8 64 bit 日本語は正しく表示される Ver7.4

_