VSCode에서 코드 작성 후 'Send Python Code to Maya'를 하면 아래와 같은 에러가 발생하는 경우가 있다.
# Error: UnicodeDecodeError: file <maya console> line 1: 'cp949' codec can't decode byte 0xed in position 7775: illegal multibyte sequence
왠지 주석에서 사용한 한글이 문제일 것 같아서 주석을 빼고 코드를 실행해보니 정상적으로 동작했다.
위 에러를 검색해보니 파이썬에서 open 함수 사용 시 인코딩 설정으로 인한 문제라는 것을 확인했고, 마야로 코드를 보내 실행할 수 있도록 해주는 확장 프로그램인 MayaCode의 소스코드를 확인해보니 open 함수를 호출하는 부분이 있었다.
깃헙에 공개되어있는 해당 확장 프로그램 소스를 fork 하여 고쳐서 커스텀 확장 프로그램으로 사용할 수도 있겠지만, 일단은 내 컴퓨터에 설치된 확장 프로그램의 코드를 직접 수정하는 방식으로 해결하였다. 아래는 그 방법이다.
1. 확장 프로그램이 설치된 경로로 이동하여 소스 파일 열기
C:\Users\{사용자명}\.vscode\extensions\saviof.mayacode-1.5.0\out\extension.js
2. 237번 라인의 코드를 아래와 같이 수정 (open함수 호출 시 encoding='UTF-8' 파라미터 추가)
cmd = `python("exec(open('${posixPath}', encoding='UTF-8').read())")`;
컴퓨터에 설치되어있는 파일을 직접 고쳤기 때문에 추후 이 확장 프로그램이 업데이트 되어 설치가 다시 된다면 에러가 다시 발생할 수 있겠지만 우선은 이러한 방식으로 해결하였다.
초반에 공부할 땐 주석을 영어로 쓰고 넘어갔지만 리깅 자동화 툴을 개발하면서 점점 주석을 작성할 일이 많아지는데 가독성이 떨어지고 불편하여 오늘 드디어 고쳐봤는데 진작 고칠걸 그랬다😅
'파이썬' 카테고리의 다른 글
| 마야 레이아웃 (0) | 2025.09.11 |
|---|---|
| 마야 파이썬 스크립트 작성을 위한 VSCode 셋업 - 마야 2025 기준 (0) | 2025.04.18 |