2013. 9. 4. 17:27

키워드 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 를 수정해주는 등의 문제 해결 방법을 적어놨는데

필자는 잘 되지 않았고 삽질 끝에 아래와 같이 해결 하였다. 


Posted by k1rha