
$ python -V
Python 2.7.14
주의 system에서 사용하는 python은 경로 꼬이면 apt 패키지 툴 부터 조차 꼬이기 때문에 pyenv 를 이용해, USER레벨에서 wrapping 해서 사용하는 것을 적극추천
/usr/bin/python, /usr/bin/python2, /usr/bin/python3 같이 시스템에서 관리하는 Python은 시스템 apt 저장소 등에도 영향을 미치기 때문에, 그냥 pyenv 같은 걸로 따로 virtual env를 사용하자. 즉,$ sudo apt install python3.x 와 같이 specific version을 명시해서 시스템 파이썬을 건들이면... 매우 꼬일 수 있다.$ which python
/usr/bin/python
/usr/bin/python (symbolic link)를 사용함update-alternatives
저기 symlink들이 관리 대상임$ sudo update-alternatives <--config | --install>로 관리 및 설치한다.$ sudo update-alternatives --install <관리대상 symlink> <사용할 cmd> <관리대상 symlink의 point to 위치> <priority>
/usr/bin/python: 관리대상 symlinkpython: 사용할 이름/usr/bin/python2: 관리대상의 symlink가 point 할 곳3: python 이름의 priority$ sudo update-alternatives --config <사용하는 cmd>
error 뜸, (install 필요)$ sudo update-alternatives --config python
update-alternatives: error: no alternatives for python
$USER 레벨에서 python을 가지고 놀려면 pyenv 로 ${HOME}/.pyenv 에서 wrapping 한 파이썬 바이너리를 사용하도록하자.print(sys.executable) 을 사용하면 STDOUT으로 출력된다.import sys
print(sys.executable)
# ==== 출력 ==== #
/opt/homebrew/opt/python@3.9/bin/python3.9
MacOS에서 pyenv를 사용하여 wrapping 한 Python Binary를 사용 중sys.path
import sys
print(sys.path)
Ubuntu 18.04에서 본연의 사용 중인 /usr/bin/python3를 대상으로 sys.path를 찍어 본 것이다.| 경로 | 설명 |
|---|---|
| /usr/lib/python3.8 | - |
$HOME/.local/lib/python3.8/site-packages | 해당 $USER가 설치한 pip로 설치한 패키지![]() |
| /usr/local/lib/python3.8/dist-packages | root가 설치한 pip로 설치한 패키지(e.g., sudo 쓰면 여기 저장됨) |
| /usr/lib/python3/dist-packages | apt, dpkg 패키지 매니저로 설치한 라이브러리 |
| [venv_name]/lib/python_version/site-packages | venv환경에서 pip로 설치 |
site-packagesdistutils가 들어감setuptools는 distutils에 의존distutils에 의존virtualenvPYTHONPATHpyvenv=venvpyenvpip3pip: Python 라이브러리 패키지 관리 툴$ pip를 사용하면 python2의 pip를 사용 할 수도 있기 때문에 헷갈리지 않게 pip3를 사용하면 된다.pip3 = python3 -m pip의 줄임말임$ python3 -m pip == $ pip3$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

$ python3 ./get-pip.py

$ pip3 --version
pip: apt 저장소에 'python3-pip' 이름으로 /usr/lib/python3/dist-packages에 설치되어 있음
pip를 관리하자!: 'pip3' 바이너리가 $HOME/.local/bin/pip3 에 위치함
$PATH에 따라 무엇을 볼 것인지 다름$PATH = $HOME/.local/bin:/usr/bin 순서로 되어 있으면 $HOME/.local/bin/pip3를 먼저 찾음$ sudo apt remove --purge python3-pippip3 업그레이드 명령pip3 upgrade 같은게 없고 pip3 install --upgrade <package> 형식 사용pip자체를 upgrade$ pip3 install --upgrade pip
pip3 search <package> 명령어가 지원 X