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 库。这可能会影响在管道中使用以前版本的 Python 代码的任何Nuke用户,包括因语法错误而无法启动Nuke

注意:由于Nuke 12.2 维护版本不再定期发布,我们鼓励所有用户开始将您的项目迁移到最新版本。


我们建议更新所有当前的 Python 脚本以与 Python 3.7 兼容,并联系任何第三方开发人员以更新其工具以与 Python 3.7 兼容。

解决该问题的一个好方法是在安全模式下启动Nuke ,并在命令行上使用--safe标志。此外,对 .nuke 目录中任何不兼容的 Python 脚本进行故障排除可能会有所帮助。有关安全模式和 .nuke 目录的更多信息可以在下面的进一步阅读部分中找到。

还可以设置Nuke为不同的Nuke版本加载不同的插件路径,这可能会帮助您过渡到Nuke 13。有关如何执行此操作的信息可以在此处找到: Q100465:如何为不同版本的Nuke加载插件

用户在代码中遇到的一项常见更改是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时仍然遇到 Python 相关问题,请打开支持请求并让我们知道遇到的确切问题以及已采取的故障排除步骤。

有关如何提出支持请求的更多信息,请参阅本文: Q100064:如何提出支持请求

    我们很遗憾听到

    请告诉我们