[Python] pip.ini 설정하기

니아·2022년 12월 14일
0

문제 상황

conda 가상환경에서 pip으로 패키지를 설치했는데 가상환경 내에 설치가 되지 않는 문제 발생

해결과정

anaconda를 지웠다가 다시 깔아도 여전히 같은 문제가 반복됨

예전에 자꾸 AppData 폴더 안에 패키지가 설치되길래 임시방편으로 pip config 설정을 global로 한 적이 있었는데 그때부터 문제가 발생한 것 같아서 찾아보는 중..

pip config

사용자가 pip의 작동 방식을 변경할 수 있는 방법은 총 3가지가 존재한다.

  • command line options
  • environment variables
  • configuration files

여기서 아마 configuration file을 건드린 거겠지..

pip은 3가지 레벨의 configuration file이 있는데

  • global : 시스템 전체 configuration file / 전체 유저에 대해서 적용됨
  • user : user별 configuration file
  • site : 환경별 즉, 가상환경별 configuration file

global로 환경 설정을 해버리는 바람에 가상환경 내에서 패키지 설치를 해도 전체 설정을 따라 외부에 설치가 되어 버리는 모양이다.

pip config command

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

0개의 댓글