この記事では、ZOS-APIを実行するために、システムにPythonをセットアップすることについて説明します。
著者: Michael Humphreys, 編集: Alexandra Culler
はじめに
この記事では、Pythonを動かしてZOS-APIと通信させるために何をインストールする必要があるかを紹介しています。
免責事項
Zemax LLCは、以下のソフトウェアまたは製品を公式にサポートまたは推奨していません。この記事で表明された見解と意見は、Zemaxの従業員である著者のみのものであり、これらはZOS-APIが始めるのに役立つガイダンスとしてのみ提供されています。
ZOS-API との通信
ZOS-API は .NET ライブラリとして記述されており、.NET と直接通信できる言語を使用することで、最も柔軟性が高く、最高のパフォーマンスを発揮します。Python.NET はこの直接通信を可能にしており、ZOS-API との通信には Python.NET が好まれています。
Python.NET については、「"Python.NET を使用する ZOS-API"」をご参照ください。
また、Python と ZOS-API を接続するもう一つの方法として、pywin32 モジュールを使って COM を使う方法があります。ZOS-API は .NET ライブラリとして書かれているため、win32com を使用して純粋な COM ベースの言語と通信します。
Python のインストール
ZOS-APIでPythonを使用するには、Pythonと、Pythonが他のCOMベースのWindowsアプリケーションと通信できるようにするpywin32モジュールの両方をインストールする必要があります。
Pythonの最新バージョンは https://www.python.org/downloads/windows/ にあります。Pythonには、2.7.xと3.xの2つの主要なブランチがあります。ZOS-APIは、どちらのブランチでも、32ビット版または64ビット版のPythonで使用できます。Python組織は2.7.xのセキュリティパッチを維持することを決定しましたが、そのブランチには新しい機能は追加されていません。現在システムにPythonがインストールされていない場合は、Pythonの3.xバージョンをインストールして、最新の機能を入手する必要があります。
Pythonをインストールするときに、コンピューターを使用する人が複数いることが予想される場合は、 Pythonをデフォルトの場所にインストールしないでください 。デフォルトの場所は、許可レベルによっては他のユーザーが利用できない独自のユーザーディレクトリの下になります。PythonをC:\ディレクトリにインストールする必要があります(権限がない場合は、管理者に連絡してソフトウェアをインストールしてもらいます)。Python 2.7をインストールする場合は、C:\ Python27にインストールすることをお勧めします。Python 3.xをインストールする場合、C:\ Python3xにインストールすることをお勧めします。
複数ユーザが居る場合:
Pythonをインストールするとき、複数名でコンピュータを使用する場合、Pythonをデフォルトの場所にインストールしないでください。デフォルトの場所はユーザ独自のディレクトリの下になるので、アクセス許可レベルによっては他の人がアクセスできません。Pythonをインストールする場所は、C:\ ディレクトリを推奨します。もし権限がなければ、ソフトウェアインストールの管理者に連絡してください。
- Python 2.7 をインストールする場合、C:\Python27 を推奨します。
- Python 3.x をインストールする場合、C:\Python3x を推奨します。
PATH 環境変数:
次に、PATH環境変数を変更してPythonパスを含める必要があります。これを行うには、[スタート]アイコンをクリックし、「environment variables」と入力します。
これらの設定に移動するときは、管理者権限があることを確認してください。よくわからない場合は、コントロールパネルをご覧ください。コントロールパネル...システム...システムの詳細設定に確認してください。
次に、システム環境変数で「Path」を強調表示し、「編集」をクリックします。Pathという名前のシステム環境変数がまだない場合は、「新規」をクリックしてPathという名前を付けます(この変数は既に作成されている可能性が高いため、Pathという名前の変数を作成する前に2回確認してください)。
次に、「新規」をクリックして、Pythonディレクトリへのパスを入力します。次に、[OK]をクリックして[システムのプロパティ]ダイアログボックスを終了します。
これで、CLIウィンドウを開き、「python」という単語を使用して、インストールしたパスでPython実行可能ファイルを呼び出すことができます。
モジュールのインポート
- Python.NET(推奨)
Python 3.4, 3.5, 3.6, 3.7 または3.8が動作していることを確認してください。 PythonNET は Python の最新バージョンで動作するように継続的に更新されていますが、3.8 より後のバージョンとの互換性は確認できていません。
pipからインストールされたpythonnetをインストールするか、インストールされていることを確認してください。
コマンドプロンプトのウィンドウを開いて、次のように入力します。python -m pip install pythonnet
下のメッセージはpythonnetがインストールされていることを意味します。
- pywin32(Python.NETを使用していない場合)
COM を使用して Python と ZOS-API を接続するには、win32com を実装した pywin32 というPython拡張モジュールをインストールします。pywin32 モジュールには 32 ビットと 64 ビットの 2 つのバージョンがあります。32 ビットの pywin32 では特定のインターフェースをどのように扱うかにランダムな問題があるので、64 ビットの pywin32 モジュールと一緒に 64 ビットのPython のみを使用することをお勧めします。ZOS-API は、pywin32 が 64 ビットで正しい Python ビルドを参照している限り、Python 2.x または Python 3.x で実行できます。
最新の pywin32 ビルドは https://github.com/mhammond/pywin32/releases にあります。
- Matplotlib:
PythonのVanillaバージョンは強力ですが、Pythonの最も優れた機能の1つは、コミュニティのオープンソースの性質と、スクリプトにインポートできるモジュールです。PythonでMatlab™のような機能を取得するには、matplotlib(https://en.wikipedia.org/wiki/Matplotlib)をインストールできます。これは、プロットライブラリであり、Pythonの数値数学拡張機能であるNumPyに基づいています。
matplotlibをインストールするには、標準のPythonインストールにパッケージされているpipを使用するだけです。古いバージョンの pip ではmatplotlibが正常にインストールされないため、matplotlibをインストールする 前にpipを更新することをお勧めします 。このチュートリアルでPythonをインストールしたばかりの場合は、以下のステップ3にスキップできます。
1.次のCLIコマンドを使用して、pipバージョンを確認できます。
python -m pip -–version
2. pipをアップグレードするには、次のCLIコマンドを使用できます。
python -m pip install --upgrade pip
3. matplotlibをインストールするには、次のCLIコマンドを使用できます。
python -m pip install matplotlib
次のようなコマンドウィンドウが表示されます。
この時点で、基本的なZOS-APIコードとすべてのサンプルファイルの両方を実行できるはずです。
Integrated Development Environment (IDE)
Pythonスクリプトを作成するときは、統合開発環境(IDE)を使用することを強くお勧めします。任意のプレーンテキストエディターを使用してPythonスクリプト(NotepadやNotepad ++など)を記述できますが、IDEには、Visual Basic™またはMatlab™のコード補完と同様に、Pythonスクリプトをデバッグし、特定のオブジェクトの属性を表示する機能があります。Jet Brainsは、この著者が使用しているPyCharm(https://www.jetbrains.com/pycharm)IDEのコミュニティエディションを提供しています。PyCharmは、コード補完、構文エラーチェック、組み込みコンソール、およびブレークポイントを備えたデバッグツールを提供します。ZOS-API環境のオブジェクトのプロパティを検査できるため、この最後の機能はIDEの最高の機能の1つです。
たとえば、NSCRayTraceのプロパティを検査する場合、検査するオブジェクトの下のサイドバーを左クリックして、オブジェクトの下にブレークポイントを挿入できます。次に、メインウィンドウを右クリックし、[実行]ではなく[デバッグ]を選択します。
次に、[変数]リストで、変数を展開してから_prop_map_get_ プロパティを展開できます。
Pycharm IDEでコードを実行するには、最新のダウンロードに対応する「python.exe」ファイルをシステム インタープリターとして設定する必要があります。[ Ctrl] + [Alt] + [ S ]をクリックして、[設定]でこれが正しいことを確認できます。そこに来たら、左側でプロジェクトのタイトルを見つけて、「Project Interpreter」をクリックします。適切なインタープリターが設定されている場合、次のようなウィンドウが表示されます。
これが表示されない場合は、設定アイコンをクリックして「追加...」を選択し、インタープリターを手動で追加する必要があります。
次に、「System Interpreter」の下で3つのドットを使用して「python.exe」を見つけます。この記事の手順に従った場合、アドレスは「C:\PythonXX\python.exe」のようになります。
Python のトラブルシューティング
Pywin32 ラッパー
OpticStudio 環境または Python 環境のいずれかを変更するたびに、pywin32 のラッパーが「壊れる」可能性があります。各ボイラープレート テンプレートのスクリプトの上部には、ラッパーを再登録する手順が記載されていますが、詳細な手順は次のとおりです。
- {Python} \ Lib \ site-packages \ win32com \ gen_py \ *。* に移動し、その(gen_py)ディレクトリにあるすべてのファイルを削除します。
- Windowsの「cmd」ウィンドウを開きます。(Windowsキー+ R->「cmd」と入力->「Enter」を押します)
- ディレクトリを {PythonEnv}\Lib\site-packages\wind32com\client\ フォルダに変更します。(つまり、「
cd C:\Python27\Lib\site-packages\win32com\client
」) - 「
python makepy.py
」と入力してEnterキーを押します。[ライブラリの選択(Select Library)] ウィンドウが表示されたら、Ctrlキーを使用して ZOSAPIとZOSAPI_Interfaces の両方を選択し、[OK] をクリックします。
代替の Python ディストリビューションと IDE でのトラブルシューティングに関する注意事項
いくつかのPython環境では、ダウンロードしたPythonのコピーを別のプログラム固有のフォルダに作成します。2つの例は、Visual Studio IDEとAnacondaディストリビューションです。これらの代替の場所は、gen_pyフォルダが保存されている場所になります。これらのタイプのプログラムのトラブルシューティングを行うには、コピーされた場所で上記の手順を実行してください。代替の場所は、以下の通りです。
- Visual Studio: C:\Users\Username\AppData\Local\Programs\Python\Python37
- Anaconda: C:\Users\Username\AppData\Local\Temp\gen_py\3.7 or C:\Users\xxx\Anaconda\Python
フォルダ名を右クリックして「クイックアクセスに固定」をクリックすることで、この別の場所をWindowsのファイルエクスプローラに固定することができます。これにより、ファイル エクスプローラーの左側に常に表示されるようになります。
サンプルファイル
サンプルファイルはOpticStudioのインストールに含まれており、{Zemax} \ ZOS-API Sample Codeフォルダーにあります。そのフォルダ内の最初の4つのファイルもこの記事に含まれています。いくつかのサンプル ファイルは実行する前にNumPyおよびmatplotlibをインストールする必要があります。
インタラクティブ拡張機能の実行に関する情報は、"ZOS-API インタラクティブ拡張機能を使用してPythonからOpticStudioに接続する"を参照してください。
前の記事: ZOS-APIの使用に必要なOpticStudioのバージョンと言語について
次の記事: ZOS-API の基本的構成についての理解
KA-01620
コメント
記事コメントは受け付けていません。