키워드 py2exe 로 변환시 인코딩 에러 encoding error
py2exe로 작성했다 exe를 일본어나 한글을 포함한 폴더로 실행하면 아래와 같은 에러가 나온다.
UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 34: ordinal not in range(128)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x83 in position 34: ordinal not in range(128)
다른 블로그를 보면
sys.setdefaultencoding 을 사용하여 변환을 해주라고 하지만 이 역시도 적용이 잘 되지 않았는데,
이유인즉 site.py 라는 곳에서 먼저 setdefaultencoding 을 사용하기 때문이다.
이를 해결하기 위해 많은 문서에서 site.py 를 수정해주는 등의 문제 해결 방법을 적어놨는데
필자는 잘 되지 않았고 삽질 끝에 아래와 같이 해결 하였다.
[Main.py]
[setup.py] : py2exe 에 사용됨
간단히 설명하자면 setup.py 에서 include 라는 옵션을 넣어 encodings 에 관한 것을
사용하지 않겠다고 해주고, sys를 import 하여 setdefaultencoidng 을 선언해 주는것이다.
이방법을 사용하면 이클립스 상에서는 에러가 뜬다.
하지만 py2exe 로 바이너리로 만들면 한글 문제가 잘 해결되며 오류가 없이 잘 실행되는
것을 확인할 수 있다.
ㅇㅇㄴ해 많은 서 site.py 를 수정해주는 등의 문제 해결 방법을 적어놨는데
필자는 잘 되지 않았고 삽질 끝에 아래와 같이 해결 하였다.
'Python' 카테고리의 다른 글
[python] py2exe 에서 관리자 권한 주기 (0) | 2013.11.06 |
---|---|
python 프로그램 window 서비스로 등록 시키기 (0) | 2013.10.21 |
[python 2.7] 엑셀 다루기 xlwt xlrd 사용하여 엑셀 컨트롤 하기 (0) | 2013.08.13 |
[Python 2.7] Parallel Python 으로 분산처리 테스트 (0) | 2013.08.06 |
[python2.7] Multi-Thread 와 Multi-Processing 차이와 예제코드 (0) | 2013.08.04 |