* [ python/maya ] pythonpath..

Posted on 11 月 26th, 2007 by tai. Filed under 未分類.


wxPythonが使いたいのでインストールしたのですが、
なんかトラブルがあったらしく、変なところにインストールされてしまいました。
仕方なく、そこにpythonpathを設定して使っていたのですが、
そしたらMaya.envに設定してあるpythonpathが無視されて、
システムで設定したpythonpathが優先されてしまっていました。


つまり、Maya.envとシステム環境変数では、システム環境変数の方が優先されてしまうということ。

かといってMayaで使う自分モジュールとかを
いちいちシステム環境変数で設定するのは面倒すぎるということで
解決方法を探してみました。

1. MAYA_APP_DIR以下のscriptsフォルダにモジュールを入れる。
 →例えば、win環境でデフォルトであれば、
  C:\Documents and Settings\(user-name)\My Documents\maya\scripts
  とかに入れてやるとOKっぽいです。

2. Mayaを立ち上げるときに、batを通して、setを使ってpythonpathを通してから立ち上げる。
 →例えば
  set PYTHONPATH=%PYTHONPATH%;D:\myPython\maya
  maya
 みたいなbatを用意して、こいつでMayaを立ち上げる。
 いや、、、、これは、、、、面倒すぎる、、、、、

3.素直にpythonpathに追加する
 →ある程度道具置き場とかが決まってるならそれでも良いかも。

とか、いろいろ考えてみましたが、なんかどれも良くない。
そもそもMaya.envのpythonpathを通せなくなるってのはどうなんですか<某社様

と思って、userSetup.pyでpythonpathを設定してみることにしました。
例えばこんな感じ。

import os
newPythonPath = os.getenv( ‘PYTHONPATH’ ) + ‘;’ + os.getenv( ‘MAYA_SCRIPT_PATH’ )
os.putenv( ‘PYTHONPATH’, newPythonPath )

MELのgetenvとputenvはpythonのosモジュール内のそれとかぶるので、
maya.cmdsモジュールには入っていないようです。

しかし気をつけてください。このスクリプトは通りません。
なぜかputenvが効きません。
最初にMayaでテストした時は上手くいったのに、2回目以降putenvが効きませんでした。
なぜですか神様(^^)イライラ

もうちょい調べるとos.environというプロパティ発見。
ここに環境変数持ってるらしいので、os.environ[ 'PYTHONPATH' ] = xxxxとして追加。
一応getenvすると出てくるようにはなった。

やったー!!と思いきやimportはできない(^^)イライライライラ

どよーんとしつつヘルプをスクロールして眺めていたら
Python パスに項目を追加するという文字が見えてきました。いろんな意味でジーザス。
ということで以下に抜粋。


Python のパスに項目を追加するには、次のいずれかを行います。

1. PYTHONPATH を Maya.env ファイルまたは作業環境で設定してから Maya を実行します。
2. Maya が実行を開始したら、userSetup.py またはその他のスクリプトの sys.path にアペンドします。

次に sys.path にアペンドする例を示します。

import sys
sys.path.append( ‘/Users/jdoe/maya/Scripts’ )

これで良いんだそうです。
もう何でも好きなように設定したら良いじゃない(^^)イライライライライライライライラ

————————————————————-追記
Mayaはシステムのsys.pathとはまた別のsys.pathを持っているらしく、
Maya.envでPYTHONPATHを設定したものはsys.pathの中に登録されるらしいことが判明。
僕が今日ずっとトライしていた、os.environのPYTHONPATHに対して設定するのは意味が無いっぽいです。
はい無駄ボーン。
ということで、sys.path.append( xxx )ってuserSetup.pyに書いてやったらいいっぽいですよ。

あと、システムでPYTHONPATHを設定していない場合は、Maya.envのPYTHONPATHが効くっぽいです。

Tags:



4 Responses to “[ python/maya ] pythonpath..”

  1. hajime Says:

    ちなみに我が社ではbatを採用してます。
    まぁこれはこれで便利ですよ。
    複数のバージョンのMayaとか、プラグインのためのパスとかいろいろ大変だからねぇ。

  2. tai Says:

    >hajimeさん
    マジすかっっΣ
    非常に意外です。。
    でも簡単に編集できるし、便利っちゃ便利ですよね。

    参考になります。

  3. hajime Says:

    何十台もあるマシンの環境変数を揃えるの大変だからね・・・。割と頻繁にルール変えちゃうし。

    今はクリーンなXPに、MAYA_APP_DIRだけユーザーごとに設定してもらい、あとはネットワーク上のbatで起動してもらうようにしてます。

  4. tai Says:

    >hajimeさん
    大変ですよね、というかやってられませんよね、、<環境変数

    と思えば確かにbatは悪くないですね。

Trackback URI | Comments RSS

Leave a Reply