Q100610: Nuke 13 が Python 3 構文エラーにより起動に失敗する

フォローする

まとめ

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起動時に Python 関連の問題が引き続き発生する場合は、サポート リクエストを開いて、発生した正確な問題と実行されたトラブルシューティング手順をお知らせください。

サポート リクエストを開く方法の詳細については、次の記事を参照してください: Q100064: サポート チケットを発行する方法

    私たちはそれを聞いて申し訳ございません

    理由をお聞かせください