記事
· 11 hr 前 2m read

Mac IRISでEmbedded Python利用に関する相性問題

Mac版IRISでは、現状Pythonのバージョンが固定(3.11)なのですが、これに付随する他製品との相性問題に遭遇しましたので報告します。

今までEmbedded Pythonは調子よく動作していたのですが、ある時から急に動作しなくなりました。

原因を調べてみると、Python3.13がインストールされ、それがデフォルトとして上書きされたため、irispythonコマンドを発行すると、それが内部で3.13を呼ぶ様になってしまったためでした。

ちなみにiris session でログインし、そこからEmbedded Pythonを実行する場合は、問題ありません。

あくまでもirispythonコマンドで直接.pyファイルを実行する場合に発生する問題です。

そしてとりあえずの対処法は、python3をpython3.11で置き換える方法です。

以下のような感じです。(どのMacでもbrewコマンドでインストールした場合、ディレクトリ構造は同じだと思いますが、違う可能性もゼロではありません)

cp /opt/homebrew/bin/python3.11 /opt/homebrew/bin/python3

さて、ところで何で3.13がインストールされていたのかというと、

IRIS SQLのLOADコマンドを動作させるためには、JDKまたはJREが必要なのでそれをインストールしました。

そしてOpenJDKのインストールの際に、勝手にPythonもインストールすることが原因でした。

何故Javaのインストールでpythonをインストールする必要があるかは不明ですが、LOAD DATAコマンドはJava経由でpythonを使用することもなさそうなので、上記の応急処置で問題なさそうですが、

根本的な対処法は、

MAC版IRISがフレキシブルpythonをサポートするか、

irispythonコマンドが自分が呼ぶべき正しいpythonバージョンを選択するか

またはわざわざirispythonを呼ばなくても通常のpythonコマンドから普通の.pyファイルを実行してembedded pythonを呼び出せる様にするか

個人的には最後が一番望ましいのですが、何か技術的な困難があるのかもしれません。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください