まとめ
Nuke 13.0 では、Python 2 はサポートされなくなり、Python スクリプトと統合を Python 3 との互換性のために更新する必要があります。これは、 Nuke 13 をVFX リファレンス プラットフォーム 2020に合わせた最近のアップデートによるものです。
詳しくは
Nuke 13.0v1 のリリースにより、Python ライブラリは Python 3.7 に更新されました。一方、 Nukeバージョン 12.2 以前は Python 2.7 ライブラリを使用していました。これは、構文エラーによるNuke起動の失敗など、パイプラインで以前のバージョンの Python コードを使用していたすべてのNukeユーザーに影響を与える可能性があります。
注: Nuke 12.2 メンテナンス リリースは定期的にリリースされなくなるため、すべてのユーザーがプロジェクトを最新リリースに移行し始めることをお勧めします。
現在の Python スクリプトを Python 3.7 と互換性があるように更新し、ツールを Python 3.7 と互換性があるように更新するためにサードパーティ開発者に連絡することをお勧めします。
問題をトラブルシューティングする良い方法は、コマンド ラインで--safe
フラグを指定してセーフ モードでNukeを起動することです。さらに、互換性のない Python スクリプトについて .nuke ディレクトリのトラブルシューティングを行うと役立つ場合があります。セーフ モードと .nuke ディレクトリの詳細については、以下の「参考資料」セクションを参照してください。
また、 Nukeバージョンごとに異なるプラグイン パスをロードするようにNukeを設定することもできます。これは、 Nuke 13 への移行に役立つ可能性があります。その方法に関する情報は、ここで参照できます: Q100465: Nukeのさまざまなバージョンにプラグインをロードする方法。
ユーザーがコード内で遭遇する一般的な変更の 1 つは、 print
コマンドです。 Python 2 では print コマンドprint “your text here”
として使用していましたが、Python 3 ではprint(“your text here”)
のように括弧が必要になりました。
このエラーの例は、ターミナル/コマンド プロンプト ウィンドウで確認できます。
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("your text here")
次のような、init.py または menu.py のエラー ダイアログが表示される場合もあります。
参考文献
- これらの変更の詳細については、 Nuke 13.0v1 リリース ノートを参照してください。
- Python 2 と 3 の間の変更点の詳細については、https: //docs.python.org/release/3.7.7/whatsnew/3.7.htmlを参照してください。
- Nuke 13.0 アップデートに関する追加情報は、ここで見つけることができます。
- セーフ モードまたは.nuke ディレクトリのトラブルシューティングについては、次のリンクを参照してください。
- Nukeユーザーの Erwan Leroy は、Python コードを更新して Python 3 と互換性を持たせる方法に関する優れたガイドを作成しました: Updating your Python scripts for Nuke 13
上記の解決策を試した後もNuke起動時に Python 関連の問題が引き続き発生する場合は、サポート リクエストを開いて、発生した正確な問題と実行されたトラブルシューティング手順をお知らせください。
サポート リクエストを開く方法の詳細については、次の記事を参照してください: Q100064: サポート チケットを発行する方法。
私たちはそれを聞いて申し訳ございません
理由をお聞かせください