mayaPython __file__ とsys.argv[0]

CGのテクニカル屋志望日記っぽく、Pythonで書いてて気になったことを自分のメモをかねて記事UP

pythonで、自分自身のパスを書く場合、

__file__
または
sys.argv[0]
で、書くことができます(同じ内容が帰ってくる)が、MayaPythonの場合__file__は、ファイル自身のパスを。sys.arvg[0]は、Mayaの maya.exeのパスを返してくる という違いがあるようです。やや注意が必要。

あと、この__file__の『自分自身』のパスを というのが、実体なのか実行している.pyなのか気になったので確認したところ、
パッケージ内の関数に__file__があれば、そのパッケージの.pyのフルパス
パッケージ内のクラスの中、クラスのメンバ関数内に__file__があれば、そのクラスの.pyのフルパス
が帰ってきます。基本 __file__ が書かれている .py のパスが呼び出されるようです。

あくまでも、自分自身(.pyファイルの)パスが帰ってくるため、MayaのScriptEditorで print __file__ をやっても、「そんなもんねーよ!」と怒られます。

そんなこんなでPythonとMayaPythonで帰ってくるものが違うので気をつけましょう。

コメントを残す

メールアドレスが公開されることはありません。

ERROR: si-captcha.php plugin: GD image support not detected in PHP!

Contact your web host and ask them to enable GD image support for PHP.

ERROR: si-captcha.php plugin: imagepng function not detected in PHP!

Contact your web host and ask them to enable imagepng for PHP.