* [ 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が効くっぽいです。
4 Responses to “[ python/maya ] pythonpath..”
Leave a Reply
最近のコメント
- [2009] 謹賀新年 に tai より
- [2009] 謹賀新年 に ぷーとん より
- [2009] 謹賀新年 に ガチャリーヌ より
- [2009] 謹賀新年 に tai より
- [2009] 謹賀新年 に hohehohe2(今日から節制) より
最近の投稿
アーカイブ
- 2009 年 1 月
- 2008 年 12 月
- 2008 年 11 月
- 2008 年 10 月
- 2008 年 9 月
- 2008 年 8 月
- 2008 年 7 月
- 2008 年 6 月
- 2008 年 5 月
- 2008 年 4 月
- 2008 年 3 月
- 2008 年 2 月
- 2008 年 1 月
- 2007 年 12 月
- 2007 年 11 月
- 2007 年 10 月
- 2007 年 9 月
- 2007 年 8 月
- 2007 年 7 月
- 2007 年 6 月
- 2007 年 5 月
- 2007 年 4 月
- 2007 年 3 月
11 月 26th, 2007 at PM 8:09
ちなみに我が社ではbatを採用してます。
まぁこれはこれで便利ですよ。
複数のバージョンのMayaとか、プラグインのためのパスとかいろいろ大変だからねぇ。
11 月 26th, 2007 at PM 9:21
>hajimeさん
マジすかっっΣ
非常に意外です。。
でも簡単に編集できるし、便利っちゃ便利ですよね。
参考になります。
11 月 27th, 2007 at AM 10:02
何十台もあるマシンの環境変数を揃えるの大変だからね・・・。割と頻繁にルール変えちゃうし。
今はクリーンなXPに、MAYA_APP_DIRだけユーザーごとに設定してもらい、あとはネットワーク上のbatで起動してもらうようにしてます。
11 月 27th, 2007 at AM 11:46
>hajimeさん
大変ですよね、というかやってられませんよね、、<環境変数
と思えば確かにbatは悪くないですね。