Q100610: Nuke 13 이상에서 Python 3 구문 오류가 발생하여 실행에 실패합니다.

요약

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 실행할 때 여전히 Python 관련 문제가 발생하는 경우 지원 요청을 열어 발생한 정확한 문제와 취한 문제 해결 단계를 알려주시기 바랍니다.

지원 요청을 여는 방법에 대한 자세한 내용은 다음 문서를 참조하세요. Q100064: 지원 티켓을 제기하는 방법

    우리는 문제로 불편을 끼쳐 드려 죄송합니다

    이유를 알려주세요