Skip to main content

Python パッケージのインストールおよびインポート

組み込み Python では、何千もの便利なライブラリに簡単にアクセスできます。一般に "パッケージ" と呼ばれますが、これらは使用する前に InterSystems IRIS のファイル・システムにインストールする必要があります。その後、コードで使用するために、インポートしてメモリにロードする必要があります。これを行うには、組み込み Python の使用方法によって、さまざまな方法があります。

Python パッケージのインストール

組み込み Python で使用する前に、コマンド行から Python パッケージをインストールします。使用するコマンドは、InterSystems IRIS を UNIX ベースのシステム (AIX を除く)AIXWindows、またはコンテナのいずれで使用するかによって異なります。

UNIX ベースのシステム (AIX を除く) への Python パッケージのインストール

UNIX ベースのシステムでは、python3 -m pip install --target <installdir>/mgr/python <package> コマンドを使用します。

Note:

まだインストールしていない場合は、まずシステムのパッケージ・マネージャでパッケージ python3-pip をインストールしてください。

例えば、ReportLab Toolkit は、PDF およびグラフィックを生成するためのオープン・ソース・ライブラリです。UNIX ベースのシステムでは、以下のようなコマンドを使用してインストールします。

$ python3 -m pip install --target /InterSystems/IRIS/mgr/python reportlab
Important:

パッケージを正しいターゲット・ディレクトリにインストールしなければ、組み込み Python はパッケージをインポートできません。例えば、--target 属性を指定せずに (および sudo を使用せずに) パッケージをインストールする場合、Python はホーム・ディレクトリ内のローカル・パッケージ・リポジトリにパッケージをインストールします。他のユーザがパッケージをインポートしようとすると、失敗します。

インターシステムズでは --target <installdir>/mgr/python オプションを使用することを推奨していますが、sudo を使用して --target 属性を省略してパッケージをインストールすると、パッケージはグローバル・パッケージ・リポジトリにインストールされます。これらのパッケージは、どのユーザでもインポートできます。

AIX への Python パッケージのインストール

AIX で、AIX Toolbox for Open Source SoftwareOpens in a new tab (利用できる場合) からパッケージをインストールします。

パッケージをインストールする前に、コマンド sudo dnf list | grep <package> を使用して、パッケージが AIX Toolbox にあることを確認します。次に、コマンド sudo dnf install <package> を使用してパッケージをインストールします。

Note:

まだインストールしていない場合は、まず AIX Toolbox からパッケージ python3.9-pip をインストールしてください。

例えば、パッケージ psutil が AIX Toolbox であることを確認します。

$ sudo dnf list | grep psutil
python3-psutil.ppc                                5.9.0-2          AIX_Toolbox  
python3-psutil-tests.ppc                          5.9.0-2          AIX_Toolbox  
python3.9-psutil.ppc                              5.9.0-2          AIX_Toolbox  
python3.9-psutil-tests.ppc                        5.9.0-2          AIX_Toolbox

次に、パッケージをインストールします。

$ sudo dnf install python3-psutil.ppc

パッケージが AIX Toolbox にない場合のみ、以下のコマンドを使用してインストールします。

$ python3 -m pip install <package>

Windows への Python パッケージのインストール

Windows では、<installdir>/bin ディレクトリから組み込みの irispip コマンドを使用します : irispip install --target <installdir>\mgr\python <package>

例えば、以下のようにして Windows マシンに ReportLab パッケージをインストールできます。

C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python reportlab

コンテナへの Python パッケージのインストール

永続的な %SYS 機能を使用せずに、コンテナで InterSystems IRIS を実行している場合は、コマンド python3 -m pip install --target /usr/irissys/mgr/python <package> を使用します。

例えば、以下のようにしてコンテナに ReportLab パッケージをインストールできます。

$ python3 -m pip install --target /usr/irissys/mgr/python reportlab 

永続的な %SYS 機能を使用して、コンテナで InterSystems IRIS を実行している場合は、コマンド python3 -m pip install --target <durable>/mgr/python <package> を使用します。<durable> は、コンテナの実行時に環境変数 ISC_DATA_DIRECTORY で定義されたパスです。

例えば、ISC_DATA_DIRECTORY=/durable/iris の場合、以下のようにしてコンテナに ReportLab パッケージをインストールできます。

$ python3 -m pip install --target /durable/iris/mgr/python reportlab 
Note:

注意 : Dockerfile を使用して InterSystems IRIS のカスタム Docker イメージを作成する場合は、/usr/irissys/mgr/python に Python パッケージをインストールします。/usr/irissys/mgr/python<durable>/mgr/python の両方が既定で sys.path に含まれているため、永続的な %SYS 機能を使用しているかどうかに関係なくパッケージを見つけることができます。

コンテナの作成と実行の詳細は、"コンテナ内でのインターシステムズ製品の実行" を参照してください。

Python パッケージのインポート

パッケージをインストールした後、InterSystems IRIS から使用するにはこれをインポートする必要があります。これにより、パッケージがメモリにロードされ、使用できるようになります。

ObjectScript からの Python パッケージのインポート

ObjectScript から Python パッケージをインポートするには、%SYS.PythonOpens in a new tab クラスの Import() メソッドを使用します。以下に例を示します。

set pymath = ##class(%SYS.Python).Import("math")
set canvaslib = ##class(%SYS.Python).Import("reportlab.pdfgen.canvas")

上記の最初の行は、組み込みの Python math モジュールを ObjectScript にインポートします。2 番目の行は、ReportLab の pdfgen サブパッケージから canvas.py ファイルのみをインポートします。

Python で記述されたメソッドからの Python パッケージのインポート

Python で記述された InterSystems IRIS メソッドで、他の Python コードの場合と同様にパッケージをインポートできます。以下に例を示します。

ClassMethod Example() [ Language = python ] 
{
     import math
     import iris
     import reportlab.pdfgen.canvas as canvaslib
     
     # Your Python code here
} 

XData ブロックを使用した Python パッケージのインポート

以下の例のように、クラス内の XData ブロックを使用してパッケージのリストをインポートすることもできます。

XData %import [ MimeType = application/python ]
{
     import math 
     import iris
     import reportlab.pdfgen.canvas as canvaslib
} 
Important:

XData ブロックの名前は %import にする必要があります。MIME タイプは、application/python または text/x-python にできます。行のインデントの考慮を含め、正しい Python 構文を使用してください。

その後、これらのパッケージは、Python で記述されたクラス内の任意のメソッドで使用できます。再度インポートする必要はありません。

ClassMethod Test() [ Language = python ] 
{
   # Packages imported in XData block

     print('\nValue of pi from the math module:')
     print(math.pi)
     print('\nList of classes in this namespace from the iris module:')
     iris.cls('%SYSTEM.OBJ').ShowClasses() 
} 

XData ブロックの背景情報は、"XData ブロックの定義と使用" を参照してください。

FeedbackOpens in a new tab