상세 컨텐츠

본문 제목

[python] PIP 버그 / PIP 오류 해결 (MacOS에서 pip 21.1.x 버그)

개발 이야기/Python

by IT/머신러닝 엔지니어의 독서/경제/육아 공부 리치윈드 - windFlex 2021. 7. 16. 14:30

본문

반응형

파이썬(python) PIP 오류/ 버그

PIP 오류 : 아무것도 할 수 없다. 

PYthon으로 개발을 하다 보면가상환경을 만들거나 PIP Install를 빈번하게 사용한다. 
그런데, 간혹 PIP 자체가 에러를 보인다. 

PIP ImportError

 

다음은 필자가 가상환경(Virtual Env.)에서 몇몇 모듈을 설치하다가 겪은 오류중 하나이다. 

환경은 MacOS (Big Sur) 환경이다. 

$ pip --version

Traceback (most recent call last):
  File "/Users/windstream/anaconda3/envs/Pytorch/bin/pip", line 7, in <module>
    from pip._internal.cli.main import main
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 10, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
    from pip._internal.cli import cmdoptions
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/cli/cmdoptions.py", line 23, in <module>
    from pip._internal.cli.progress_bars import BAR_TYPES
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/cli/progress_bars.py", line 12, in <module>
    from pip._internal.utils.logging import get_indentation
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/utils/logging.py", line 18, in <module>
    from pip._internal.utils.misc import ensure_dir
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/utils/misc.py", line 33, in <module>
    from pip._internal.locations import (
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/locations/__init__.py", line 9, in <module>
    from . import _distutils, _sysconfig
  File "/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/locations/_sysconfig.py", line 8, in <module>
    from pip._internal.exceptions import InvalidSchemeCombination, UserInstallationInvalid
ImportError: cannot import name 'InvalidSchemeCombination' from 'pip._internal.exceptions' (/Users/windstream/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/exceptions.py)

 

주요 에러 내용을 보면 다음과 같다. 

ImportError: cannot import name 'InvalidSchemeCombination' from 'pip._internal.exceptions' (/Users/wind/anaconda3/envs/Pytorch/lib/python3.8/site-packages/pip/_internal/exceptions.py)

 

PIP._internal.exceptions ? 뭐지?

 

 

발생 오류 설명 

 

처음에는 `Pip install <module >` 을 실행 했을 때, 에러가 처음 발생 했다. 그래서, 모듈이 잘못 되어서 발생한 일인줄 알았다. 그러나, 단순 `pip` 명령만 실행해도 발생하는 것이다. 다른 kernel에서 발생하지는 않지만, 해당 kernel에서는 pip 명령어 자체가 문제가 되어 버린것이다. 

 

pip의 어떤 명령어도 동작하지 않게 되었다. 

 

구글 검색을 해 보니, MacOS의 최신 pip (21.1.x)의 버그로 알려져 있는 오류이다. 

따라서, 기본적으로 해당 버전 (21.1.x)로 설치하거나, 업그레이드 하지 않는 것이 좋다. 

그러나, 최신 Module들을 설치하는 과정에서 `pip install --upgrade pip` 등으로 업데이트 설치하는 프로세스가 포함된 경우도 많으므로 이 경우에 유의해야 할것 이다. 



해결 방안

사실, 이 상황이 되면, pip를 이용하는 모든 것이 동작하지 않는다. 심지어는 pip 버전 확인도 되지 않아서, 정확한 현상을 파악하기까지 시간도 오래 걸린다. 다음은 `pip --version` 명령을 실행 했을 때 화면이다. 

pip 자체 전체를 지우고 다시 설치할 수 도 있으나, 보통 이 경우에 문제가 되는 것은 가상환경(Virtual Env.)의 Site-packages 아래에서 문제가 발생하는 경우므로, OS 자체에서 pip를 삭제하는 것은 과한 해결 방법이라 하겠다. 

 

따라서, 궁극적으로 현재 가상환경에만 적용되는 PIP 리소스를 다시 설치/덮어쓰면 된다. 

해당하는 가상환경은 activation하고 다음 명령을 실행해 주자.

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py

pip를 새로 설치하고 나며, 문제가 되는 pip 21.1.x 버전으로 설치가 되게 된다. 

파이썬 패키지 관리자 (pip )를 다시 설치한다. 그러나, 버전이 21.1.3 인것으로 확인된다. 

 

다시 동일한 오류가 발생하지 않으려면, 당분간은 버전을 다운그레이드 할 필요가 있다. 아래와 같이 21.0.x로 버전을 다시 설치한다. (이후 버그가 수정되면 업그레이드 하면 될것이다.)

$ pip install pip==21.0.1

그리고, 이 버그가 해결 될 때 까지는 `pip install --upgrade pip`는 피하도록 하자. 

 

반응형

관련글 더보기

댓글 영역