본문 바로가기
카테고리 없음

[파이썬] 'SyntaxError: Non-ASCII character ...' 에러 해결

by 왕 달팽이 2020. 3. 9.
반응형

파이썬 프로그래밍을 하다가 다음 에러 메시지를 만나게 되었습니다.

SyntaxError: Non-ASCII character '\xec' in file /Users/user/workspace/test/test.py on line 123, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

에러 메시지를 해석하면 'Non-ASCII' 문자가 파이썬 스크립트에 존재하고 있어 스크립트를 실행할 수 없다는 뜻입니다. 소스코드를 보니 한글 주석을 남겨놓은 것이 문제가 된 것 같습니다.

구글링을 해보니 문제의 해결 방법은 매우 간단합니다. 파이썬 스크립트 파일의 첫 부분에 한글을 지원하는 인코딩을 넣어주면 됩니다.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
...

스크립트 첫 부분에 # -*- coding: utf-8 -*- 구문을 추가하고 실행하면 Non-ASCII 에러는 사라지게 됩니다. 'utf-8' 인코딩을 사용할 수 없는 상황이라면 'euc-kr' 등 다른 한글 인코딩도 사용할 수 있습니다. 한글을 지원하는 적절한 인코딩을 찾아서 세팅해주면 됩니다.

파이썬 코드의 인코딩 설정과 관련된 내용은 PEP-263 문서에 잘 설명되어 있습니다.(https://www.python.org/dev/peps/pep-0263/)

참고로 Python 3.x 버전에서는 기본적으로 utf-8 인코딩을 사용하고 있어 이와 같은 문제가 없습니다. Python 3.x를 사용하고 있는데 이 에러를 만났다면, 첫 줄에 나와있는 파이썬 관련 셔뱅이 python 2.x 버전을 가리키고 있는게 아닌지 확인해 보시기 바랍니다. python 2.x 버전은 기본적으로 ASCII 인코딩을 사용하고 있어 별도의 선언이 없다면 이와 같은 문제가 발생합니다.

반응형

댓글