티스토리 뷰

파이썬으로 프로그래밍을 하다가 SytaxError 메시지를 받게 되었다.

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: <encoding-name> -\*- 구문을 추가하고 실행하면 'SyntaxError: Non=ASCII character ...' 에러는 사라진다. 'utf-8' 인코딩을 사용할 수 없는 경우라면, 'euc-kr'도 있고 지원되는 인코딩이 다양하니 찾아서 알맞은 걸 선언해주면 된다.

 

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

 

참고로 python 3.X 버전에서는 기본적으로 utf-8 인코딩을 사용해서 문제가 없다. 만약 Python3 를 사용하고 있는데 이 문제를 만났다면, 첫 줄에 나와있는 파이썬 실행환경이 python 2.X 버전을 가리키고 있는게 아닌지 확인해보자. python 2.x 버전은 기본적으로 ASCII 인코딩을 사용하고 있어 별도의 선언이 없다면 이와 같은 문제가 발생한다.

댓글
댓글쓰기 폼
공지사항
최근에 달린 댓글
Total
4,368
Today
10
Yesterday
73
링크
«   2020/04   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
글 보관함