conda 가상환경에서 pip
으로 패키지를 설치했는데 가상환경 내에 설치가 되지 않는 문제 발생
anaconda를 지웠다가 다시 깔아도 여전히 같은 문제가 반복됨
예전에 자꾸 AppData 폴더 안에 패키지가 설치되길래 임시방편으로 pip config 설정을 global로 한 적이 있었는데 그때부터 문제가 발생한 것 같아서 찾아보는 중..
사용자가 pip
의 작동 방식을 변경할 수 있는 방법은 총 3가지가 존재한다.
여기서 아마 configuration file을 건드린 거겠지..
pip
은 3가지 레벨의 configuration file이 있는데
global
: 시스템 전체 configuration file / 전체 유저에 대해서 적용됨user
: user별 configuration filesite
: 환경별 즉, 가상환경별 configuration fileglobal
로 환경 설정을 해버리는 바람에 가상환경 내에서 패키지 설치를 해도 전체 설정을 따라 외부에 설치가 되어 버리는 모양이다.
configuration 을 다룰 수 있는 명령어를 알아보자면
list
: 활성화된 configuration 내용 리스트업하기 (혹은 지정한 파일의 configuration 내용)edit
: 에디터에서 configuration file 수정get
: command.option 에 따른 값 얻기set
: command.option 을 특정 값으로 설정unset
: command.option의 값 없애기debug
: configuration 파일들과 해당 파일들 안에 설정된 값들 리스트업하기pip.config 내용 확인하기
위에서 확인한대로 list
command를 사용해서 확인할 수 있다.
> python -m pip config list // Windows, Unix, macOS 모두 가능
아니나 다를까 global target이 설정되어 있는 상태였다.. 이러니까 자꾸 밖에 설치가 되지
pip.config 내용 수정하기
설정된 값을 지우려면 unset
을 쓰면 된다고 하니
> python -m pip config unset global.target
을 써봤고 설정내용이 사라진 것을 확인할 수 있었다! 그러고나서 conda 가상환경에 패키지를 설치하면 정상적으로 잘 설치된다!!!
pip.ini 파일 로딩 위치 확인하기
추가로 하나만 더 알아보자면 아래 명령어를 통해서는 pip.ini 파일(configuration 내용들이 쓰여지는 파일)의 위치를 확인할 수 있다.
$ pip config -v list
<참고 사이트>
[pip documentation] Configuration
[pip documentation] pip config
[stackoverflow] why-am-i-getting-these-warning-target-directory-directory-already-exists-w
[stackoverflow] how-to-change-default-install-location-for-pip
[GitHub issue] pip issue