外部インタプリタから Python を使用する

Maya アプリケーションでの Python のサポートの他に、Maya ではスタンドアローン型 Python インタプリタからの Python モジュールの使用もサポートしています。これはバッチ処理や、Python を使用する別のアプリケーション(MotionBuilder や Composite など)から Maya の機能にアクセスする場合に便利です。

Autodesk では、Maya の機能を読み込むために適切に構成されたスタンドアローン型 Python インタプリタを提供しています。次の場所から、mayapy 実行可能ファイルを実行します。

注:

¥bin フォルダ内から mayapy を開始する代わりに、MAYA_LOCATION の絶対パスを指定する必要があります。

Python インタプリタがロードされたら、Maya をロードして初期化する必要があります。これには、以下をウィンドウに入力します。

import maya.standalone 
maya.standalone.initialize( name='python' )
注:

すべての Maya ライブラリをロードしてシーンを初期化するため、このコマンドの実行にはかなりの時間がかかります。

初期化ルーチンはパラメータを 1 つだけ(name)取りますが、このパラメータはオプションです。name パラメータは Maya にアプリケーションの名前を伝えます。name の既定値は python です。

Maya がロードされ初期化されると、Maya の機能がすべて使用可能になるはずです(maya.cmdsmaya.OpenMaya など)。ただし、Python インタプリタ内での Maya の実行は、Maya をバッチ モードで実行することに相当します。そのため、UI コマンドの無効化を含む通常のすべての Maya バッチ モードでの制限が存在します。

注: Python インタプリタを終了する前に maya.standalone.uninitialize() を呼び出すことを推奨します。これにより、インタプリタがエラーとともに終了することが防げる場合があります。
注:

Maya 内では PYTHONHOME 環境変数が設定されますが、外部インタプリタを使用している場合、この変数は、Maya 外ではクリアされます。

ヒント: Maya の Python インタプリタ内にいるかどうかを確かめる場合、次のコード ブロックを実行します。
try: 			
    import maya.standalone 			
    maya.standalone.initialize() 		
except: 			
    pass

Maya の Python インタプリタ内にいる場合、initialize() コールが投げた例外が無事受け取られます。

別の Python インタプリタを使用する

Maya の出荷時に同梱されるものとは別の Python インタプリタから Maya を使用することも可能です。ただし、Maya に同梱されている Python と同じバージョン番号を使用することをお勧めします。別のインタプリタを使用するには、適切な環境を設定することが必要です。

Python インタプリタの環境を設定するには

  1. PYTHONPATH 環境変数に Maya の site-packages ディレクトリを追加するか、インタプリタが初期化されたら(Maya が初期化される前に)、このディレクトリを Python 内の sys.path に追加します。このディレクトリは次のとおりです。
    • Windows: ./Python/Lib/site-packages
    • Mac OS X: ../files/Maya.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python2.4/site-packages
    • Linux: ../files/lib/python2.4/site-packages
  2. MAYA_LOCATION 環境変数が Maya のインストール位置を指し示すように設定し、Maya がそのリソースを検索できるようにします。

    Mac OS X では、MAYA_LOCATION がアプリケーション バンドルの位置(../files/Maya.app/Contents)を指し示すように設定してください。

  3. (Linux) Maya ディストリビューションの lib ディレクトリを LD_LIBRARY_PATH に追加して、Python が Maya の読み込み中に共有ライブラリを検索できるようにします。
    ヒント: Mac OS X では、mayapy 実行可能ファイルはシェル スクリプトで、別の Python インストールを使用するためにコピーして修正することができます。

    スクリプトなしで環境を設定するには

    1. ../files/Maya.app/Contents/MacOS を DYLD_LIBRARY_PATH に追加して、Python が Maya の共有ライブラリを検索できるようにします。

    2. ../files/Maya.app/Contents/Frameworks を DYLD_FRAMEWORK_PATH に追加して、Maya が依存しているフレームワークを Python が検索できるようにします。

    3. MAYA_NO_BUNDLE_RESOURCES を何らかの値に設定します。これにより、メイン バンドルを検索する代わりに MAYA_LOCATION を介してリソースを検索するよう Maya に指示します (Maya をこの方法でバッチで実行すると、メイン バンドルは Maya のメイン バンドルではなくなります)。