요약
Nuke 13.0부터 Python 2는 더 이상 지원되지 않으며, 모든 Python 스크립트와 통합 기능은 Python 3 호환성을 위해 업데이트되어야 합니다. 이는 Nuke 13을 VFX Reference 플랫폼 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 “your text here” 와 같이 print 명령을 사용했지만, 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: 지원 티켓을 제기하는 방법
우리는 문제로 불편을 끼쳐 드려 죄송합니다
이유를 알려주세요