メインコンテンツ

pyenv

Python インタープリターの既定の環境の変更

説明

pyenv を使用して、Python® インタープリターの既定のバージョンまたは実行モードを変更します。これらの変更は、複数の MATLAB® セッション間で維持されます。

MATLAB から py 名前空間を使用して Python 式を入力すると (py.list など)、MATLAB では Python インタープリターが選択され、読み込まれます。インタープリターを変更するには、以下を行います。

  • Python が InProcess ExecutionMode で読み込まれている場合は、MATLAB を再起動し、新しいバージョン情報または実行モードを指定して pyenv を呼び出します。

  • Python が OutOfProcess モードで読み込まれている場合は、terminate を呼び出して、Python インタープリターに関連付けられているプロセスを terminate で終了してから、新しいバージョン情報または実行モードを指定して pyenv を呼び出します。

MATLAB は Python インタープリターの読み込み時に以下の設定にアクセスします。

  • 関数 pyenv を使用して構成された、Python 環境のユーザー設定。指定したバージョンが PYTHONHOME で指定されているバージョンと競合している場合は、pyenv を呼び出す前に環境変数を削除してください。pyenv で設定された値は、複数の MATLAB セッション間で維持されます。詳細については、Windows プラットフォームに Python バージョンを設定またはMac および Linux プラットフォームでの Python バージョンの設定を参照してください。

  • PYTHONHOME 環境変数。pyenv.Status の値が NotLoaded の場合に、Python 標準ライブラリを検索する場所を指定します。MATLAB で変数の値を表示するには、「getenv("PYTHONHOME")」と入力します。詳細については、PYTHONHOME 環境変数の使用を参照してください。

  • システム PATH 環境変数。MATLAB でシステム パスを表示するには、「getenv("PATH")」と入力します。

  • Windows® レジストリ。

pyenv は、現在 (既定) の Python 環境の詳細を表示します。

pyenv(Name=Value) は、Python 環境を設定するためのパラメーターを指定します。たとえば、pyenv(Version="3.10") は、Microsoft® Windows プラットフォームでの既定の Python バージョンを 3.10 に変更します。

pe = pyenv(___) は、さらに環境の詳細を PythonEnvironment オブジェクトとして返します。

すべて折りたたむ

pe = pyenv;
pe.Version
ans = 

    "3.10"

実行モードを OutOfProcess に設定します。

pyenv(ExecutionMode="OutOfProcess")
ans = 

  PythonEnvironment with properties:

          Version: "3.10"
       Executable: "C:\Python310\pythonw.exe"
          Library: "C:\Python310\python310.dll"
             Home: "C:\Python310"
           Status: NotLoaded
    ExecutionMode: OutOfProcess

変数を作成します。

py.list({"Monday","Tuesday","Wednesday","Thursday","Friday"});

プロセスを表示します。MATLAB は、環境固有の情報を表示します。

pyenv
ans = 

  PythonEnvironment with properties:

          Version: "3.10"
       Executable: "C:\Python310\pythonw.exe"
          Library: "C:\Python310\python310.dll"
             Home: "C:\Python310"
           Status: Loaded
    ExecutionMode: OutOfProcess
        ProcessID: "9768"
      ProcessName: "MATLABPyHost"
pe = pyenv;
if pe.Status == "Loaded" && pe.Version ~= "3.10"
    disp('To change the Python version, restart MATLAB, then call pyenv(Version="3.10").')
else
    pyenv(Version="3.10");
end

システムに Python がインストールされていることを確認するには、PythonEnvironment Version プロパティを確認します。

pe = pyenv;
if pe.Version == ""
    disp "Python not installed"
end

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: pe = pyenv(Version="/usr/bin/python",ExecutionMode="OutOfProcess")

Python のバージョン番号 (Windows プラットフォームのみ) または実行可能ファイルのファイル名。string スカラーまたは文字ベクトルとして指定します。サポートされているバージョンの詳細については、Python を使用するためのシステムの構成を参照してください。

  • Version でバージョン番号を指定する場合、値にはメジャー バージョンとマイナー バージョンの番号をピリオドで区切って含めなければなりません。関数が、Windows レジストリでバージョンを検索します。Python アプリケーションを www.python.org/downloads からダウンロードする場合は、インストールによってバージョンがレジストリへ自動的に追加されます。別のソースからアプリケーションをダウンロードする場合は、バージョンをレジストリに追加するか、実行可能ファイルのファイル名を指定して pyenv を呼び出し、バージョンを変更しなければなりません。

  • Version が既存の実行可能な Python ファイルの名前である場合、値にはファイル名とファイルの絶対パスまたは相対パスを含めなければなりません。この構文は、任意のプラットフォームで、再パッケージ化された CPython 実装のダウンロードに使用できます。

例: pyenv(Version="3.10")

例: pyenv(Version="/usr/bin/python")

Python スクリプトを MATLAB と同じプロセスで実行するかどうかを示す実行モード。"InProcess" または "OutOfProcess" として指定します。既定の "InProcess" では、スクリプトを MATLAB プロセスで実行します。このモードはパフォーマンスが重要なユース ケースで使用します。

"OutOfProcess" では、別のプロセスを開始します。これは、Python のスクリプトやライブラリを安全に実行するために使用します。"OutOfProcess" は、次の場合に選択します。

  • MATLAB でも必要なサードパーティ ライブラリの異なるバージョンを必要とする、Python ライブラリの使用。

  • ワークフローのデバッグ。

アウトプロセスで関数 Python を呼び出す場合、呼び出しにはオーバーヘッドが伴います。この動作がパフォーマンスに影響を及ぼす場合があります。

データ型: char | string

バージョン履歴

R2019b で導入