$ 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
$ 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-packages
distutils
가 들어감setuptools
는 distutils
에 의존distutils
에 의존virtualenv
PYTHONPATH
pyvenv=venv
pyenv
pip3
pip
: 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-pip
pip3
업그레이드 명령pip3 upgrade
같은게 없고 pip3 install --upgrade <package>
형식 사용pip
자체를 upgrade$ pip3 install --upgrade pip
pip3 search <package>
명령어가 지원 X