2019-02-22

pip install PyAutoGUI 중 UnicodeDecodeError: 'cp949'를 만나다..

(클릭하면 확대됨)

0. 문제는 여기서부터 시작됐다.



나는 그저 terminal에 'pip install pyAutoGUI'를 입력한 다음 엔터를 눌렀을 뿐이고

컴퓨터는 내게 "cp949를 코덱으로 쓰는 열등한 너네 민족이

감히 이 패키지를 설치하려 드는거야?"라며 에러를 퉤 뱉어냈다.



1. cp949가 뭐지..

cp949라는 녀석을 처음 만난 것은 아니다.

with open('text.html', 'r') as f:

    f.read()

라고 입력해서 만난 cp949 에러 때문에 encoding='utf-8'을 붙였던 적이 잦았다.

그럼 대체 cp949는 뭐하는 녀석인걸까.



2. 코드 페이지 949의 약자이다.

마이크로소프트에서 도입한 코드 페이지로,

'통합형 한글 코드(Unified Hangul Code)라는 명칭으로 부르기도 한다.

한글 언어팩 정도인 것 같다.

이게 만들어진 이유는..

이전의 인코딩에선 '쌰', '쓩'등의 글자가 표시되지 않는 문제가 있어서

이를 확장시킨 버전이 등장했는데 이게 cp949다.

더 많은 이야나무위키에서도 찾을 수 있었다.



3. 내 컴퓨터에서 기본 인코딩이 cp949로 되어있는 모양이다.



...


...


라고 생각해서 많은 시행착오를 거쳤다.

Python 3.6을 3.7로 업그레이드도 해보고, Pycharm을 지웠다가 재설치도 해보고,

PyPI에 들어가 pyautogui를 수동으로 다운받은 다음

해당 패키지의 setup.py 중 fh.read() 위의 open() 함수에서

encoding='utf-8'까지 붙여보았지만 여전히 먹통이었다.



4. 뜻밖의 해결... 허무하다.

어떤 사람은

pip install pyautogui===0.9.39

를 써보라고 권하기도 했다. 하지만 버전을 낮추기엔 뭔가 아쉬움이 남았다. 그러던 중..

pip install pygetwindow==0.0.1

을 써보라는 말을 듣고 바로 실천해보았다.



아주 잘 된다.

PyAutoGUI를 윈도우10에서 설치하다가 UnicodeDecodeError를 만나게 된다면

위의 방법을 시도해보길 바란다.

의존성이라는 것을 너무 맹신해선 안된다던 어느 글이 생각난다..



5. 여담.

실은 이미 CentOS에서 PyAutoGUI를 설치해보았는데,

해당 OS는 기본 언어가 영어로 되어있다보니 설치하는 데에 전혀 문제가 없었다.

하지만 공식 홈페이지에 따르면 리눅스에서는 'pip3 install python3-xlib' 처럼

추가적인 패키지를 설치해야 하는 경우가 생길 수 있다.

댓글 없음:

댓글 쓰기