[Blender3.3] Pythonスクリプトの読み込みフォルダを追加したい
先に、トレース出力用のオブジェクト(Trace)を作成しましたが、これを都度プログラムに書き込むのも面倒です。
と言うことで、importできるようにします。
やり方は簡単で、スクリプトの置いてあるフォルダを環境変数PYTHONPATHに追加するだけです。
私は自分のDocumentsフォルダの中に3DCGフォルダを作成し、その中にMyScriptsを作成してそこにpythonのファイルを置いているので、%USERPROFILE%\Documents\3DCG\MyScript と書きました。
これを設定した後にBlenderを起動すれば良いのです。
試しに、BlenderのPythonコンソールを起動して入力すると、以下の結果となりました。
>>> import sys >>> import pprint >>> pprint.pprint(sys.path) ['C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\scripts\\startup', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\scripts\\modules', 'C:\\Users\\user\\Documents\\3DCG\\MyScripts', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\python310.zip', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\python\\DLLs', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\python\\lib', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\python\\bin', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\python', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\python\\lib\\site-packages', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\scripts\\freestyle\\modules', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\scripts\\addons\\modules', 'C:\\Users\\user\\AppData\\Roaming\\Blender ' 'Foundation\\Blender\\3.3\\scripts\\addons\\modules', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\scripts\\addons', 'C:\\Users\\user\\AppData\\Roaming\\Blender ' 'Foundation\\Blender\\3.3\\scripts\\addons', 'C:\\BlenderLauncher\\stable\\blender-3.3.0+lts.0759f671ce1f\\3.3\\scripts\\addons_contrib']
結果を見ればわかりますが、スクリプトのファイルをユーザのAppData\Roaming\Blender以下に置く方法もあります。でも面倒なので...。
この状態で、先に作成したTraceクラスを呼び出してみます。
同じBlenderのPythonコンソールで打ち込んでみました。
>>> import trace >>> trace.Trace.on() >>> trace.Trace.print('aaaa') <blender_console>:1 <module>: aaaa >>> from trace import Trace >>> Trace.print('aaaa') <blender_console>:1 <module>: aaaa
きちんと読み込めていることが確認できました。