python3コマンドでEmbedded Pythonを動かす方法(macOS)
.pyファイルの中でIRISのEmbedded Pythonを動作させる際にirispythonコマンドで実行する方法はドキュメント上で紹介されていましたので、以前より使用していました。
しかし、普通のpythonコマンドを使用するとうまく実行できなかったのですが、最近その謎(原因)が解けたので紹介します。
これは、Mac特有の問題である可能性が高くWindowsやLinuxでは何の問題もなく実行できるのかもしれません。
エラーは以下のようなエラーです。
File "/opt/iris/lib/python/iris.py", line 34, in <module>
from pythonint import *
ImportError: IrisSecureStart failed: IRIS_ATTACH (-21)
このエラーの原因は、シェルの実行ユーザーとirisのオーナーが異なることが原因とのことです。
Macで普通にIRISをインストールするとそのオーナーはrootです。
従ってpython3コマンドを実行する時にsudoコマンドでrootになる必要があるということです。
そして以下のような環境変数の設定も必要です。
export IRISINSTALLDIR=/opt/iris
export LD_LIBRARY_PATH=$IRISINSTALLDIR/bin:$LD_LIBRARY_PATH# for MacOSexport DYLD_LIBRARY_PATH=$IRISINSTALLDIR/bin:$DYLD_LIBRARY_PATH# for IRIS usernameexport IRISUSERNAME=SuperUser
export IRISPASSWORD=SYS
export IRISNAMESPACE=USERディスカッション (0)0
Comments
以下のコミュニティの記事にある通りiris-embedded-python-wrapperをインストールするとsudoを使う必要がなくなります。
https://community.intersystems.com/node/585033
この方法でも色々と動作が不安定な場合があり、やはり現時点ではirispythonコマンドを使用する方法がおすすめです。
動作が不安定だった原因が判明しました。
環境変数の設定に不備があったのが原因のようです。
iris-embedded-python-wrapperをインストールし、環境変数を適切に設定すれば、OKです。