Django 0.97에서 unknown encoding: X-MAC-KOREAN 문제
[ 2008년 04월 09일, 19시 10분] [ 글 갈래 : 잘난 척 하기 ]맥(Mac OS X)에서 Django 0.97 pre1판을 기반으로 개발을 할 때 디버깅 화면이 나오지 않고
unknown encoding: X-MAC-KOREAN
위와 같은 문자열이 들어간 오류 화면이 뜹니다. 저는 맥 언어 환경을 우리말로 했기 때문에 X-MAC-KOREAN 이라고 뜨는 것이죠.
이것은 Django에 있는 tzinfo.py (timezone 정보 관리하는 역할)가 기본 locale 을 가져와서 그럴싸한 문자열을 만들려 하기 때문에 맥 환경에서 발생하는 문제입니다. 이게 0.97 언제쯤 고쳐질지는 모르겠으니 일단 아쉬운대로 고쳐서 써봅시다. (음냐. 이러면 svn update 할 때 conflict 뜨는데 그 해결은 알아서 하세요)
대상 소스 파일 : django/utils/tzinfo.py
위 파일을 열면
try:
DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
except:
# Any problems at all determining the locale and we fallback. See #5846.
DEFAULT_ENCODING = 'ascii'
이런 부분이 나옵니다. 소스 파일 안에서 거의 맨 위에 있지요. 여기서 문제가 되는 부분이 바로 try 안에 있는 녀석입니다. 맥에서는 저걸 실행하면 X-MAC-뭐시기라고 가져옵니다. 그런 게 없으니 오류가 나는 것이고요. 그 아래에 DEFAULT_ENCODING = ‘utf-8′을 넣어주면 오류 안납니다.
try:
DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
DEFAULT_ENCODING = 'utf-8'
except:
# Any problems at all determining the locale and we fallback. See #5846.
DEFAULT_ENCODING = 'ascii'
이러면 django의 디버깅 화면이 잘 나옵니다. 찝찝하면 DEFAULT_ENCODING = locale.getdefaultlocale()[1] or ‘ascii’ 를 주석으로 하세요.
여기서 교훈 한 마디. 역시 시험판, 특히 미리맛보기판(pre version)은 안쓰는게 정신 건강에 좋다.
: http://www.hannal.net/blog/feed/
RSS 구독하기
웹 항해일지, 2008-04-09…
웹 항해일지, 2008-04-09 웹 2.0 사이트 3종: bug.gd - Humanity’s Only Hope - 주요 소프트웨어 또는 라이브러리의 오류 메시지와 그에 대한 해결책을 모으는 사이트. 이를테면 이런 글이나 이런 글을 하…
trackback at 2008/04/10 이 의견은 엮인글(Trackback)이며, 모든 내용을 읽으시려면 이곳을 누르세요.
….휴…. 장고 튜토리얼 따라하다 이 문제 때문에 얼마나 고생했는지 모릅니다 흑흑. 장고 메일링 리스트를 다 뒤져봐도 답변은 없고… DEFAULT_ENCODING 바꿔주고서 또 셋업을 다시 해야 한다는걸 몰라서 한참 고민했네요. 암튼 1.0에서도 이 문제는 여전합니다. 좋은 내용 감사합니다
comment at 2008/09/15
tifereth님도 당하셨군요! 저도 무척 고생 했었습니다. 저 문제는 django 문제는 아니고 맥과 파이썬이 함께 만들어내는 문제입니다. 그러므로 django 쪽에서는 앞으로도 이 문제를 계속 일으킬 수 있지요. ^^;
.
이 문제를 해결하려면 위와 같이 하거나, 맥에 깔린 파이썬을 손봐야 합니다. 이 문제는 파이썬 매킨토시 한중일 코덱라는 글로 퍼키님께서 얘기를 한 번 다루셨고요. 2.6이나 3.0에선 해결될 것 같습니다.
comment at 2008/09/15