- 환경: Ubuntu 20.04 LTS, x86-64
아래 커맨드 설치
$ curl https://pyenv.run | bash
pyenv.run
이 repository의 설치용 스크립트를 bash로 리다이렉트
# (The below instructions are intended for common
# shell setups. See the README for more guidance
# if they don't apply and/or don't work for you.)
# 아래의 명령어들은 일반-쉘-설정에 설치된다.
# Add pyenv executable to PATH and
# enable shims by adding the following
# to ~/.profile:
# pyenv 실행가능한 PATH로 추가도록 아래의 환경 변수를 ~/.profile에 추가하라.
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
# If your ~/.profile sources ~/.bashrc,
# the lines need to be inserted before the part
# that does that. See the README for another option.
# ~/.profile이 sources ~/.bashrc라면, 위 라인이 그 이전에 삽입할 것
# If you have ~/.bash_profile, make sure that it
# also executes the above lines -- e.g. by
# copying them there or by sourcing ~/.profile
# ~/.bash_profile을 가지고 있다면, 위 라인이 실행됨을 보장한다.
# Load pyenv into the shell by adding
# the following to ~/.bashrc:
# ~/.bashrc에 다음의 명령어를 추가여 pyenv를 로드할 수 있다.
eval "$(pyenv init -)"
# Make sure to restart your entire logon session
# for changes to profile files to take effect.
# 전체 로그인 세션을 restart해서 변경이 profile file에 effect를 주게 해라.
# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:
# ~/.bashrc에 다음의 명령어를 추가하여 자동적으로 pyenv-virtualenv를 로드한다.
eval "$(pyenv virtualenv-init -)"
~/.zshrc
에아래의 내용을 append함
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
$ source ~/.zshrc
$ pyenv versions
$ sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
OpenSSL
lib 못 찾는 에러1) ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
libssl-dev
를 찾지 못해서 발생하는 에러$ sudo apt-get install libssl-dev
로 해결pyenv shell
pyenv local
: 특정 디렉토리에서 사용되는 pythonpyenv global
: pyenv에 의해 $USER가 전반적으로 사용하는 pythonSystem Python
: 내 system에서 쓰는 Python/usr/bin/python -> /usr/bin/python3 -> /usr/bin/python3.8
...$ pyenv install <INSTALL_PYTHON>
<INSTALL_PYTHON>
에 뭐가 들어갈지 모르겠으면, tab
키를 누르면 자동 완성$ pyenv install 3.6.8
$ pyenv versions
$ pyenv global <version>
$ pyenv global <PYTHON VERSION>
e.g.,
$ pyenv global 3.9.0
$HOME/.pyenv/versions
에 디렉토리로 지정됨$ python -V
해보면 pyenv global로 지정된 파이썬이 사용됨을 확인$ python -V
Python 3.9.0
# 시스템용 python(/usr/bin/python)은 3.8.6 임
$ pyenv local <version>
$ pyenv local <PYTHON VERSION>
e.g.,
$ pyenv local 3.9.0
.python-version
파일이 생성 되고, 명시된 버전 사용됨# === dir/.python-version === #
3.9.0
$ pyenv which python
$ pyenv which python
$ pyenv which python
/home/$USER/.pyenv/versions/3.9.6/bin/python
$HOME/.pyenv/versions/3.9.6
global
site-packages$HOME/.pyenv/versions/3.9.6/lib/python3.9/site-packages
$ pyenv local <version>
$ pyenv local <python version>
으로 명시$ pyenv local <Python Version>
e.g.,
$ pyenv local 3.9.0
PYENV_VERSION
에 명시$ export PYENV_VERSION="3.9.0"
.python-version
파일을 디렉토리에 생성.python-version
파일을 생성하고 버전 명시pyenv-virtualenv
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
$HOME/.pyenv/plugins/pyenv-virtualenv
디렉토리가 있다면(~/.pyenv/plugins/pyenv-virtualenv) $ git fetch origin && git pull origin master && git checkout FETCH_HEAD
(~/.pyenv/plugins/pyenv-virtualenv) $ sudo ./install.sh
pyenv-virtualenv
목록 list$ pyenv versions
$ pyenv virtualenvs
인데, 그냥 $ pyenv versions
해도됨$ pyenv virtualenv <name>
pyenv-virtualenv <내 환경>
이 관리하는 패키지3.6.8
my-env-3.9.0
항목 | path |
---|---|
site-packages | $HOME/.pyenv/versions/3.9.0/envs/my-env-3.9.0/lib/python3.9/site-packages |
pip | $HOME/.pyenv/versions/3.9.0/envs/my-env-3.9.0/lib/python3.9/site-packages |
3.6.8
webosimg.lge.com
항목 | path |
---|---|
site-packages | $HOME/.pyenv/versions/3.6.8/envs/webosimg.lge.com/lib/python3.6/site-packages |
pip | $HOME/.pyenv/versions/3.6.8/envs/webosimg.lge.com/lib/python3.6/site-packages |
pyenv-virtualenv
만들기# pyenv 적용 디렉토리
$ pyenv virtualenv <Env Name to be created>
으로 pyenv-virtualenv 환경을 생성할 수 있다.
3.9.0
my-env-3.9.0
로 생성 예제# pyenv local 3.9.0
$ pyenv virtualenv my-env-3.9.0
$HOME/.pyenv/version/3.9.0/my-env-3.9.0
생성pyenv-virtualenv
Activate$ pyenv activate <virtualenv>
e.g.,
$ pyenv activate my-env-3.9.0
.python-version
파일에 명시해도 됨pyenv-virtualenv
Deactivate$ pyenv deactivate
$ pyenv uninstall my-virtual-env
혹은
$ pyenv virtualenv-delete my-virtual-env
echo $PYENV_VERSION
으로 보자
$PYENV_VERSION에 명시적으로 사용 버전을 Insert
$ export PYENV_VERSION=3.6.8