Maya2022のPythonでreloadが使えない?

こんにちは!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()

無地に読み込まれました🎉
いや~難しいですね。
同じようにお困りの方はご参考下さい。
では、また!

コメント

タイトルとURLをコピーしました