概括
从Nuke 13.0 开始,不再支持 Python 2,所有 Python 脚本和集成都需要更新以兼容 Python 3。这是因为此次更新旨在使Nuke 13 与VFX Reference Platform 2020保持一致。
更多信息
随着Nuke 13.0v1 的发布,Python 库已更新至 Python 3.7,而Nuke 12.2 及更早版本使用的是 Python 2.7 库。这可能会影响任何在其工作流程中使用旧版本 Python 代码的Nuke用户,包括可能出现Nuke无法启动并显示语法错误的情况。
我们建议确保所有 Python 脚本至少与 Python 3.7 兼容,并联系任何第三方开发人员,让他们更新工具以与 Python 3.7 兼容。
注:截至撰写本文时,最新发布的Nuke版本 16.0v4 使用的是 Python 3.11.7,如本文所述: 第三方库和字体
解决此问题的一个好方法是使用命令行参数--safe以安全模式启动Nuke 。此外,检查 `.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 13.0 更新的更多信息。
- 请查看以下链接,了解有关安全模式和.nuke 目录故障排除的信息。
- Nuke用户 Erwan Leroy 撰写了一篇很棒的指南,介绍如何更新 Python 代码以使其与 Python 3 兼容: 更新Nuke 13 的 Python 脚本
如果您在尝试上述解决方案后,启动Nuke时仍然遇到与 Python 相关的问题,请提交支持请求,并告知我们遇到的具体问题以及已采取的故障排除步骤。
如需了解如何提交支持请求,请参阅文章: Q100064:如何提交支持工单
我们很遗憾听到
请告诉我们