[MayaPython] .pyをMayaにDrag&Dropして実行する

「Melファイルは、Mayaの画面にDrag&Dropすれば実行出来るしのが便利だよなー」
と常々思っていたので、せっかくだからPythonでも似たような事ができないもんかと
execfileの使い方の勉強をかねて作ってみました。
DDUI

UI上すべてだとやり方が分からなかったので、こんな感じで簡単なUIを作って
ココの中にPythonファイルを投げ込むと、Maya上で実行してくれる感じにしてみました。
少し前にDragDropするやり方で作ったものとソースはほぼ同じです。

一応動いたのですが、Melのように Sourceしたファイルに書いてある関数を使用する…みたいなことができません。
PythonのHelpを確認してみると

import 文と違って、モジュール管理機構を使いません — この関数はファイルを無条件に読み込み、新たなモジュールを生成しません。

execfile でpyを読み込んだ場合に、execfile内の関数を使用する場合は、
execfile の引数のDic型を名前空間として使用する…なのですがよく分からないのでやってみました。

C:/test.py

execfileを使うpyファイルは

引数で指定したDic型が名前空間になる…というのが↑。
なるほど。

出来はするけども、通常とはだいぶ書き方が変わるので、execfileを使ってsourceしつつ
sourceした先のスクリプトを使うのはあまり現実的な感じがしない…

なので、関数を書くまでもない処理とかをさくさくっと使ったり
setupScript的なものを読み込むときなんかに使うのがいいのかもしれません。

なかなかラクーにイイカンジに使えるようにするのは難しいです。
要研究!!

おまけ。

execfile で読み込んだ場合は、
if __name__ == ‘__main__’:
の中に書かれたコードが実行されるので、この中にテストコードなんかを書いてある場合は注意が必要です。
コレを利用すれば、実際に使用するときはimport。テストするときはexecfile()とかでも良さそうだなーと思いました。

[MayaPython] .pyをMayaにDrag&Dropして実行する」への1件のフィードバック

  1. ピンバック: [PySide] DropできるListViewを作る | Reincarnation+

コメントを残す

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


*