Pyenv & virtualenv

 

Python 가상환경을 제공하기 위한 pyenvvirtualenv를 사용하는 과정을 정리해보고자 한다.

1. Configuration

$ vi ~/.bashrc

   ...

   export PYENV_ROOT="$HOME/.pyenv"
   command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
   eval "$(pyenv init -)"
   eval "$(pyenv virtualenv-init -)"

2. Installation

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

3. Create virtualenv

  1. List installable python versions
    $ pyenv install --list
    
  2. Install python version
    $ pyenv install 3.8.12
    
  3. Check installed python versions
    $ pyenv versions
    
  4. Create/delete virtualenv
    $ pyenv virtualenv 3.8.12 base
    $ pyenv uninstall base
    
  5. List virtualenvs
    $ pyenv virtualenvs
    
  6. Activate/deactivate virtualenv
    $ pyenv activate base
    $ pyenv deactivate
    
  7. Set global(default) virtualenv
    .pyenv/version 에 virtualenv를 적어 default virtualenv를 설정할 수 있다.
    $ pyenv global base
    
  8. Set local python version
    Directory 내 .python-version 에 virtualenv를 적어두면 해당 directory 진입 시 자동으로 virtualenv가 변하게 할 수 있다.
    이와 관련된 설정이 .bashrc에서 추가한 eval "$(pyenv virtualenv-init -)"

    $ pyenv local base  # write base in .python-version
    

Troubleshooting

  1. ModuleNotFoundError: No module named '_lzma'
    macOS에서 python3.8.12를 설치하는 과정에서 에러가 발생.
    xz package를 설치하여 해결 (https://stackoverflow.com/a/69517932/9002438)
     $ brew install xz