본문 바로가기
디지털 포렌식(Digital Forensics)/네이버 웨일 웹 포렌식(Naver Whale Web Forensics)

0-1. Python2.7버전 pip 설치 오류 및 UnicodeDecodeError 에러

by LIZ0904 2020. 6. 13.
반응형

PIP(Package Manager)

파이썬은 다양한 패키지를 제공하며, 패치지를 쉽게 설치하고 사용할 수 있다.

pip는 파이썬의 패키지를 설치하거나 관리할 수 있는 패키지 관리 시스템이다.

파이썬 최신버전(2.7.9 이후버전 또는 3.4 이후 버전)에서는 pip를 기본적으로 포함해서 설치할 수 있다.

 

 

cmd 창에서 pip를 실행하려고 할 때, 오류가 나서 몇시간동안 고생을 했다. 두가지의 오류가 났는데 하나는 'pip은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다'와 'UnicodeDecodeError : 'ascii' codec cant decode byte 0xb1 in position 7:ordinal not in range(128)' 이었다. 두가지 오류를 어떻게 해결해야 하는지 알아보자!

 

 

 

 

1.  'pip은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다' 오류

 

이 오류는 환경변수를 추가함으로써 해결가능하다.

우선, 파일위치로 간다. 나같은 경우는 C:\Python27에 있었다. 파일에 들어가면 Scripts 폴더가 하나 있을텐데, 그 폴더 안에 pip.exe 파일이 들어있다. 만약 찾기 힘들다면 윈도우창에 'pip.exe' 파일을 검색한 후, '파일 위치 열기'를 클릭해도 된다. 

python27 폴더의 내부

 

 

상단의 바를 한번 클릭해보면, 주소창을 확인할 수 있다. pip.exe가 있는 폴더의 경로를 복사해두자.

pip.exe.가 있는 폴더의 경로 복사

 

 

이제 환경변수를 추가해줄건데, 내 PC->오른쪽 마우스 클릭 후 속성->고급 시스템설정(화면 좌측에 위치해 있음)을 수행해준다. 그럼 다음과 같은 화면이 나오는데, 하단의 환경변수를 열어준다.

환경변수 설정이 가능한 '시스템 속성' 캡처

 

 

그 다음 '(사용자명)에 대한 사용자변수(U)'에 있는 Path를 더블클릭해준다.

환경변수

 

그 다음 '새로만들기(N)' 한 다음 아까 복사해뒀던 Scripts 문서의 경로를 붙여넣기 해준다. 

환경 변수 편집

이제 cmd창에서 pip 명령어를 실행해보자!

 

 

 

 

 

 

2. UnicodeDecodeError : 'ascii' codec cant decode byte 0xb1 in position 7:ordinal not in range(128) 오류

 

cmd창에서 pip install Pillow를 실행해보니 빨간색으로 가득찬 무서운 에러가 떴다.

cmd창 캡처 

이 오류에는 세가지 방법을 시도해 보았다.

 

 

첫번째, 경로에 한글이 포함되어 있거나, hostname(PC)명에 한글이 있는지 확인해본다.

hostname을 확인하는 방법은 두가지가 있다.  내 'PC->오른쪽 마우스 클릭 후 속성' 또는 cmd창에서 'hostname'을 쳐보는 것이다.

속성에서 hostname 확인
cmd창에서 hostname 확인

나는 한글이 포함되어 있지 않았다. 그럼 두번째 방법으로 넘어가보자.

 

 

 

두번째, 파일의 인코딩 방식을 수정해준다.

'파이썬이 들어있는 폴더->Lib 폴더->site.py'을 수정해준다.

499번째 라인이 if encoding != "ascii" 로 되어있다면 ascii -> utf-8 로 변경해준다. 라인번호는 우측 하단에서 확인 가능하다.

인코딩 방식 변경 (ascii->utf-8)

 

 

같은 폴더에 ntpath.py 파일이 있는데, 이 파일도 수정해준다.

85번째 라인이 result_path = result_path + p_path로 되어 있다면, result_path = result_path + p_path.encode('utf-8') 로 수정해준다.

인코딩 방식 변경 (result_path = result_path + p_path.encode('utf-8'))

 

 

 

참고자료 출처: https://itinerant.tistory.com/10

 

[Python][pip] UnicodeDecodeError 해결 방법

pip 으로 패키지 설치하는데 아래와 같이 UnicodeDecodeError: 'ascii' codec can't decode byte 0xb9 in position 7: ordinal not in range(128) 오류나는 경우 아래 두 파일의 인코딩 방식을 수정해 주면 된다...

itinerant.tistory.com

 

 

 

 

세번째, 내 컴퓨터는 유니코드를 지원하지 않는 프로그램에서 어떤 언어를 사용하도록 되어있는지 확인한다.

'제어판->시계 및 국가->날짜, 시간 또는 숫자형식변경'에 들어간다.

제어판->시계 및 국가->날짜, 시간 또는 숫자형식변경

 

 

'관리자 옵션->시스템 로캘 변경(C)'에 들어가보면, 유니코드를 지원하는 않는 프로그램에서 사용할 언어를 선택할 수 있게 되어있다. utf-8을 사용할 수 있도록 하단의 'Beta: 세계 언어 지원을 위해 Unicode UTF-8 사용' 을 체크해준 뒤, cmd창에서 pip를 실행하면 Unicode 에러를 해결할 수 있다.

관리자 옵션->시스템 로캘 변경(C)
유니코드 미지원시, UTF-8 사용

 

 

 

 UnicodeDecodeError 에러 때문에 몇시간동안이나 고생했는데, 드디어 해결했다!

반응형

댓글