SUMO SUMO Wiki

Wiki カテゴリ&ファイル

目次

Sumo Python API のセットアップ

Sumo には、数値エンジンにアクセスするための Python インターフェースが付属しています。これは、DTT アドオンをインストールした後、インストールフォルダ内に配置されます:

<Sumo install path>/PythonAPI/dynamita

カスタム Python アプリケーションでこの Python インターフェース、すなわち API を利用する方法はいくつかあります。

API フォルダのコピー

インターフェースを利用する最も簡単な方法は、インストールフォルダにある dynamita フォルダを、カスタム Python アプリケーションのある場所へコピーすることです。

例えば、カスタムプロジェクトが C:/Users/username/My Sumo simulation フォルダにあるとします。Sumo のインストールフォルダから、このカスタムアプリケーションフォルダへ dynamita フォルダをコピーするだけで、以下のような構成になります:

C:/Users/username/My Sumo simulation/dynamita

このカスタムフォルダ内にあるすべての Python スクリプトは、次のようにして API をインポートできます:

import dynamita.scheduler as ds
import dynamita.tool as dtool

この方法の欠点は、Python プロジェクトが複数の異なるフォルダに存在する場合、それぞれのプロジェクトに API をコピーしなければならない点です。API が更新された場合には、その API を利用しているすべてのカスタムプロジェクトを更新する必要があります。

一方で、プロジェクトごとに異なるバージョンの API を必要とする場合には、これはむしろ利点にもなります。

PYTHONPATH 環境変数の設定

ここでは、コマンドプロンプトウィンドウで環境変数を設定する最も単純なケースを説明します。エディタや統合開発環境(IDE)によっては、この変数を設定する別の方法が用意されている場合もあります。

キーボードの Windows ボタンを押し、cmd と入力して Enter を押すと、コマンドプロンプトウィンドウが開きます。コマンドウィンドウで次のように入力します:

set PYTHONPATH=<Sumo install path>/PythonAPI

ここで <Sumo install path> は、実際のパスに置き換える必要があります。このウィンドウでスクリプトを実行すれば、Sumo インストールフォルダ内の API に直接アクセスでき、コピーする必要はありません。欠点、あるいは一部のユーザーにとっては利点は、すべての Python プロジェクトが単一のバージョンの API に結びつけられる点です。

仮想 Python 環境の作成

これは最も安全ですが、最も手間のかかる Sumo Python インターフェースのセットアップ方法です。Python の公式ドキュメントには、仮想環境の作成方法の例が掲載されています。

仮想環境では、通常の pip install コマンドでインターフェースパッケージをインストールできます。さまざまな Python および Sumo API のバージョンに応じて複数の仮想環境を作成し、それぞれの環境内で安全に作業できます。

このケースでは、Sumo Python インターフェースは、いわゆる Python Wheel ファイルとして次の形式でパッケージ化されます: dynamita-V.M.m-py3-none-any.whl。これは pip を使って次のようにインストールできます:

pip install dynamita-V.M.m-py3-none-any.whl

V.M.m の部分は Sumo のバージョンを示しており、V はバージョン番号、M はメジャーリビジョン、m はマイナーリビジョンの番号です。現時点では、このパッケージは Dynamita S.A.S. に個別にリクエストする必要があり、実際の Sumo バージョンを含む dynamita-24.0.0-py3-none-any.whl のような名前になります。より古い、あるいはより新しいバージョンの Sumo では、異なるバージョン番号になる場合があります。

ハイブリッド仮想環境

Linux システムでは Python がオペレーティングシステムの一部となっており、その Python バージョンには一切変更を加えたくない場合があります。そのような場合は、Python の公式ドキュメントに従って仮想 Python 環境を作成し、作業スペースを OS 標準の Python から分離できます。
仮想環境を有効化した後、次のコマンドで PYTHONPATH 変数を設定できます:

パスに含まれる UTF-8 文字

パスに含まれる非ラテン文字(例えば中国語、韓国語、日本語)を正しく処理するには、シミュレーションの実行に使用する端末(ターミナル)を適切に設定しておく必要があります。

Windows

Windows では、UTF-8 文字を処理するために 65001 コードページを使用します。コードページを変更するには、次のコマンドを使用します:

chcp 65001

Docker コンテナ

コンテナは、正しいロケール環境変数を指定して起動する必要があります:

docker run -it -e "LC_ALL=C.UTF-8" ...

端末が正しく設定されていないと、ライセンスファイルが見つからず、シミュレーション用のモデルを読み込めなくなります。