Pyenv & virtualenv & direnv 주요 명령어 정리

python

(Curtis Kim) #1

Introduction

python을 사용하다보면, 여러 프로젝트를 관리할 일도 생기고, 다양한 환경과 다양한 디펜던시(dependancy)를 관리해야할 경우가 생긴다. 프로젝트 환경을 좀 더 깔끔하게 관리하려면 pyenv, virtualenv 등을 이용하는 것이 좋다.

Install pyenv & virtualenv

$ brew install pyenv
$ brew install pyenv-virtualenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

Mac 기준 위와 같은 커맨드로 설치할 수 있다.

Examples for pyenv

$ pyenv install --list
$ pyenv install 3.6.2

설치가능한 python interpreter 종류를 출력하고, 원하는 버전을 설치한다.

$ pyenv local 2.7.6
$ pyenv local --unset

Examples for virtualenv

< 명령어 형식 >
pyenv virtualenv [파이썬 버전] [가상 환경 이름]
$ pyenv virtualenv 3.6.2 venv
$ pyenv activate venv

$ pyenv deactivate

위와 같이 특정 파이썬 버전으로 가상환경을 생성하고, 필요에 따라 activate / deactivate 하면 된다.

direnv

특정 폴더마다 bash environment를 다르게 가져갈 수 있는 유틸리티이다. pyenv + virtualenv를 특정 폴더에서 자동으로 activate 시켜줄 수 있다.

$ brew install direnv

위 명령어로 설치한 후, $ eval "$(direnv hook bash)" 를 bash_profile 에 추가한다.

bash environment를 설정하고 싶은 폴더에서 .envrc 파일을 만든 후 아래와 같이 작성하고, 초기에 direnv allow .를 실행해 등록하면 된다.

source ~/.bash_profile
pyenv activate cloud-data-py3.6.6

References

https://blog.naver.com/claude17/221317279767

https://direnv.net/


(Curtis Kim) #2

opencv 처럼 빌드해서 설치하는 라이브러리의 경우에는 virtualenv마다 설치하는게 꽤 귀찮을 수 있어서, 빌드&설치 1번만 해두고 링크를 걸어서 사용할 수 있음. 다만 python version이나 dependency version에 주의해야 함

$ python3 -c "import site; print(site.getsitepackages()[0])"
/Users/curtis/.pyenv/versions/cloud-data-py3.6.6/lib/python3.6/site-packages
$ ln -sfn /Users/curtis/.pyenv/versions/3.6.6/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so /Users/curtis/.pyenv/versions/cloud-data-py3.6.6/lib/python3.6/site-packages/