pip user mode
Python 의 패키지 관리자인 pip 는 system 경로에 패키지를 설치하므로 root 권한이 필요한 문제가 있습니다.
이를 해결하려면 패키지 작업시마다 root 로 작업하거나 python 패키지가 설치되는 디렉터리를 일반 사용자도 쓸 수 있도록 하는 방법이 있는데 둘 다 피해야할 작업 방식입니다.
다행히 pip 는 사용자 경로에 패키지 설치를 지원하므로 다음과 같이 실행시 --user 옵션을 추가하면 root 권한이 없어도 패키지 설치가 가능합니다.
pip install PACKAGE --user
BASH
user mode 일 경우 패키지는 site.USER_BASE 경로에 설치되므로 이 경로를 확인한 후에 하위 bin 폴더를 PATH 에 추가해 주면 됩니다.
site PATH 얻기
$ python3 -c 'import site; print(site.USER_BASE)'
/home/lesstif/.local
BASH
bash 를 사용할 경우 다음 명령을 실행해서 site.USER_BASE 경로를 초기화 파일에 넣어줍니다.
echo 'export PATH=$PATH:'$(python3 -c 'import site; print(site.USER_BASE)')'/bin' >> ~/.bash_profile
BASH
OS 별 site 경로
위 코드를 OS 마다 구동하면 각각의 user site 를 알수 있는데 일반적으로 다음 경로입니다.
Windows
Windows 는 다음 경로에 사용자의 python 패키지가 설치되므로 고급 환경 설정에 들어가서 PATH 변수에 추가해 줍니다.
python3 -c 'import site; print(site.USER_BASE)'
C:\Users\USERNAME\AppData\Roaming\Python
POWERSHELL
OS X
OS X 는 ~/Library/Python/PYTHON_VERSION 에 설치되며 PYTHON_VERSION 은 3.6 , 3.7 같은 버전 숫자입니다.
OS X 서도 아래 명령을 실행해서 초기화 파일에 추가합니다.
echo 'export PATH=$PATH'$(python3 -c 'import site; print(site.USER_BASE)')'/bin' >> ~/.bash_profile
BASH
Linux
linux 는 ${HOME}/.local/bin 을 직접 PATH 에 추가해 주거나 위 스크립트를 실행하면 됩니다.
echo 'export PATH=$PATH'${HOME}/.local/bin >> ~/.bash_profile
BASH
bash function 에 추가하기
다음과 같은 function 을 쉘 초기화 파일에 추가하면 pip 실행시 자동으로 user mode 로 실행할 수 있습니다.
function pip {
pip3 "$@" --user
}
CODE
다음 alias 구문으로 해도 되지 않냐고 생각할 수 있지만 alias 는 parameter expand 가 제대로 안 되서 "no such option: --user" 오류가 발생합니다.
alias pip='pip3 $* --user'
CODE
같이 보기
Ref