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)은 안쓰는게 정신 건강에 좋다.

3개의 댓글과 엮인글이 있습니다.

  1. 류광의 번역 이야기:

    웹 항해일지, 2008-04-09…

    웹 항해일지, 2008-04-09 웹 2.0 사이트 3종: bug.gd – Humanity’s Only Hope – 주요 소프트웨어 또는 라이브러리의 오류 메시지와 그에 대한 해결책을 모으는 사이트. 이를테면 이런 글이나 이런 글을 하…


    trackback at 2008/04/10 이 의견은 엮인글(Trackback)이며, 모든 내용을 읽으시려면 이곳을 누르세요.
  2. tifereth:

    ….휴…. 장고 튜토리얼 따라하다 이 문제 때문에 얼마나 고생했는지 모릅니다 흑흑. 장고 메일링 리스트를 다 뒤져봐도 답변은 없고… DEFAULT_ENCODING 바꿔주고서 또 셋업을 다시 해야 한다는걸 몰라서 한참 고민했네요. 암튼 1.0에서도 이 문제는 여전합니다. 좋은 내용 감사합니다 :)


    comment at 2008/09/15
  3. 한날:

    tifereth님도 당하셨군요! 저도 무척 고생 했었습니다. 저 문제는 django 문제는 아니고 맥과 파이썬이 함께 만들어내는 문제입니다. 그러므로 django 쪽에서는 앞으로도 이 문제를 계속 일으킬 수 있지요. ^^;
    .
    이 문제를 해결하려면 위와 같이 하거나, 맥에 깔린 파이썬을 손봐야 합니다. 이 문제는 파이썬 매킨토시 한중일 코덱라는 글로 퍼키님께서 얘기를 한 번 다루셨고요. 2.6이나 3.0에선 해결될 것 같습니다. :D


    comment at 2008/09/15

손끝에서 맺어지는 우리의 댓글 인연을 기대합니다.



XHTML: 옆의 HTML 태그를 사용할 수 있습니다 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>