Windows pip에서 UnicodeDecodeError 발생

2016. 4. 25. 19:14·IT기술 관련/파이썬_루비 등 언어
반응형

출처: http://blog.lyuwonkyung.com/windows-pipeseo-unicodedecodeerror-balsaeng-2/


센터에서 지원받아 사용하던 13인치 맥북을 반납하고, 내 개인 15인치 맥북은 사무실에 상주시키기로 하였기에 집에서는 다시 윈도우 노트북으로 작업을 하게 되었다. 고작 15개월간 맥으로 갈아타 개발을 했을 뿐인데 다시 돌아온 윈도우는 개발하기에 너무나도 불편하였다! (내가 유별난게 아닐것이다!) 결국 우분투를 설치해도 보았지만, Wine으로 카카오톡이나 멜론을 정상 실행할 수 없었기에 결국 다시 윈도우로는 와야하겠고.. (카톡만 잘 되었어도 그냥 버텼을텐데, 새로운 메시지가 오자마자 Crash가 터지는 이유를 도저히 알 수 없었다.) 이런 와중에 윈도우에 개발 환경을 다 세팅하고 Flask 개발을 위해 pip install Flask를 입력하는 순간 UnicodeDecodeError 예외가 나를 당황스럽게 만들었다.

물론 인터넷에 여러가지 해결책이 나와있지만, 그 해결책 각각들은 내게 도움이 되지 않았고, 간만에 아주 긴 삽질을 통해 두 가지의 아티클을 조합하여 문제를 해결하였다! (문제는 당연히도 비유니코드 문자열 이슈 때문인듯 하다. 아마도 경로에 들어있는 멀티바이트 문자 같은 것들 때문인듯.)

  1. Python이 설치된 경로(e.g. 나의 경우에는 C:\python)의 lib 디렉토리(윈도니까 폴더라고 해야하는 것인가)에 있는 site.py(c:\python\lib\site.py)를 열어 479, 490 라인의 ascii를 utf-8로 수정한다.

    def setencoding():
        """Set the string encoding used by the Unicode implementation.  The
        default is 'ascii', but if you're willing to experiment, you can
        change this."""
        encoding = "utf-8" # Default value set by _PyUnicode_Init() # 요기!
        if 0:
            # Enable to support locale aware default string encodings.
            import locale
            loc = locale.getdefaultlocale()
            if loc[1]:
                encoding = loc[1]
        if 0:
            # Enable to switch off string to Unicode coercion and implicit
            # Unicode to string conversion.
            encoding = "undefined"
        if encoding != "utf-8":  # 요기!
            # On Non-Unicode builds this will raise an AttributeError...
            sys.setdefaultencoding(encoding) # Needs Python Unicode build !
    
  2. 같은 디렉토리의 ntpath.py를 열어 87번째 라인의 p_path를 p_path.encode('utf-8')로 치환해준다.

    ....
        elif p_drive and p_drive != result_drive:
            if p_drive.lower() != result_drive.lower():
                # Different drives => ignore the first path entirely
                result_drive = p_drive
                result_path = p_path
                continue
            # Same drive in different case
            result_drive = p_drive
        # Second path is relative to the first
        if result_path and result_path[-1] not in '\\/':
            result_path = result_path + '\\'
        result_path = result_path + p_path.encode('utf-8')  # 요기!
    ## add separator between UNC and non-absolute path
    if (result_path and result_path[0] not in '\\/' and
        result_drive and result_drive[-1:] != ':'):
        return result_drive + sep + result_path
    return result_drive + result_pat
    

이제 잘 될것이다!

반응형
저작자표시 (새창열림)

'IT기술 관련 > 파이썬_루비 등 언어' 카테고리의 다른 글

python - pxssh를 이용한 ssh connect & send command  (0) 2016.09.12
구글 트렌드 파이썬 api  (1) 2016.04.25
python pip 설치  (0) 2016.04.25
[Python] 파이썬 악성코드  (0) 2015.12.09
[Python] Python (*.py)를 exe화 하기  (0) 2015.12.09
'IT기술 관련/파이썬_루비 등 언어' 카테고리의 다른 글
  • python - pxssh를 이용한 ssh connect & send command
  • 구글 트렌드 파이썬 api
  • python pip 설치
  • [Python] 파이썬 악성코드
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    쥬쥬랜드
    수제버거맛집
    AWS
    수제버거
    런치
    판교역
    판교맛집
    대통령
    수제버거존맛
    마케팅
    복리후생
    상호관세
    맛집
    유니티
    돈까스
    판교
    이재곧죽습니다
    무역전쟁
    점심
    보안가이드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
Windows pip에서 UnicodeDecodeError 발생
상단으로

티스토리툴바