こんにちは!Rhinoです。
梅雨が近づいてきてますね。
じめじめは苦手です( ノД`)シクシク…
さて、最近Maya2022にバージョンアップしたのですが、これまで通り編集したPythonスクリプトをreloadで読み直そうとしたところエラーがでるようになったので調べてみました。
reload
MayaのPythonスクリプトを書いていると、モジュールの読み込みにはimport関数を使うと思います。
では、スクリプトを編集した場合はどうでしょうか?
importではMaya本体ごと再起動しなければならないと思います。とても面倒くさいですね。
そこでreload関数というモジュールを再読み込みする便利なものがあります。
main関数がある場合は下記のように使用していました。
reload( モジュール )
モジュール.main()
Maya2022でreloadを使うとエラーがでる
ところがMaya2022でreload関数を使って再読み込みを使用とするとエラーがでるようになってしまいました。
う~ん、困りましたね…
Error: NameError: file line 1: name 'reload' is not defined #
Maya2022ではPython3がインストールされている
どうやらMaya2022ではPython3にアップデートされたことが原因のようです。
Pythonのバージョンによって適切なモジュールを読み込んであげる必要があります。
Python2.x: reload( モジュール )
Python3.3: import imp imp.reload( モジュール )
Python3.4: import importlib importlib.reload( モジュール )
では、Maya2022のPythonのバージョンはいくつなのか調べてみます。
スクリプトエディタに次のように入力してみます。
import sys
print( sys.version )
3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit (AMD64)]
どうやら3.7.7がインストールされているようですね。
import importlib
importlib.reload( モジュール )
モジュール.main()
無地に読み込まれました🎉
いや~難しいですね。
同じようにお困りの方はご参考下さい。
では、また!
コメント