javascript로 웹 개발만 하다가 사이드 프로젝트에 Django를 사용하게 되어, 파이썬을 사용하게 되었다.
파이썬을 주력으로 사용하지 않아 군데군데 오류가 있을 수 있지만, 추후에 동일한 환경을 구축해야하는 경우를 위해 포스팅을 남겨둔다.
1. 왜 가상환경인가?
1) 로컬과 글로벌 환경의 차이
예를 들어 글로벌에서는 2.x의 파이썬이 설치되어 있지만, 실제 개발 환경에서는 3.x의 파이썬 버전을 사용해야 할때가 있다. 또한 여러개의 프로젝트를 동시에 진행할 때, 프로젝트가 요구하는 파이썬이나 모듈의 버전이 각기 다른 경우가 있다. 이 때, Pyenv를 사용한다면 가상의 환경을 넘나 들며, 다른 버전의 모듈을 편리하게 사용할수 있는 장점이 있다.
2) 작업 환경 공유의 편의성
프로젝트에 참여하는 신규 개발자가 개발환경을 세팅 하기 위해서는, 해당 프로젝트가 실행되기 위해 동일한 모듈을 설치해 주어야한다. 이 때 가상환경에 설치된 모듈들의 정보만 알면 명령어 한줄로 동일한 환경을 만들 수 있다.
2. 가상환경 설치 및 설정 (Mac 기준)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # pip 설치 $ sudo easy_install pip # xcode 명령어 라인 도구 설치 xcode-select --install # pyenv 설치 $ brew install pyenv # 환경변수 설정 $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile # 설정 파일 실행 $ source ~/.bash_profile # virtualenv 설치 $ brew install pyenv-virtualenv $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile $ source ~/.bash_profile # 파이썬 버전 확인 후 특정 버전 설치(현재 기준 텐서플로가 지원되는 최신 버전은 3.5.6 이다) $ pyenv install --list $ pyenv install [python version] # 가상 환경 생성 및 실행 $ pyenv virtualenv [python version] [environment name] $ pyenv activate [environment name] $ pyenv deactivate | cs |
2-1. 특정 버전 파이썬이 설치되지 않을 경우
1 2 3 4 5 | $ brew install homebrew/dupes/zlib $ brew install readline xz $ CFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ pyenv install -v [python version] | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $ brew install autoenv $ echo 'source /usr/local/opt/autoenv/activate.sh' >> ~/.bash_profile $ source ~/.bash_profile /Users/eunwoo/.zshrc:source:112: no such file or directory: /Users/eunwoo/.autoenv/activate.sh autoenv: autoenv: WARNING: autoenv: This is the first time you are about to source /Users/eunwoo/Desktop/tensorflow/.env: autoenv: autoenv: --- (begin contents) --------------------------------------- autoenv: pyenv activate tensorflow$ autoenv: autoenv: --- (end contents) ----------------------------------------- autoenv: autoenv: Are you sure you want to allow this? (y/N) | cs |
pyenv를 사용하여 가상환경을 실행 종료시킬때, activate/deactivate를 사용하는데, 이는 매우 번거로운 일이다.
autoenv를 사용하면 프로젝트 폴더의 .env 파일을 읽어서 실행시켜주기 때문에 자동 실행 설정이 가능하다.
우선 위의 코드로 autoenv 설치 및 설정을 완료한다.
1 2 3 4 5 | $ cd [project directory] $ vim .env # .env을 생성하여 아래의 코드를 입력 pyenv activate [environment name] | cs |
그리고 자신의 프로젝트 파일로 들어가 .env 파일을 생성한 후 가상환경을 실행하는 명령어를 입력해준다.
다시 디렉토리 밖으로 나왔다가 들어와서 정상적으로 동작이 되는지 확인한다.
4. pyenv 명령어
1 2 3 4 5 6 7 8 9 | $ pyenv install --list # 다운가능한 파이썬 버전 목록 보기 $ pyenv install [python version] # 특정 파이썬 버전 설치 $ pyenv versions # 설치된 python의 버전들 보기 $ pyenv uninstall [environment name] # 가상환경 삭제 # pyenv-virtualenv 명령어 $ pyenv virtualenv [python version] [environment name] # 가상환경 생성 $ pyenv activate [environment name] # 가상 환경 실행 $ pyenv deactivate # 가상 환경 종료 | cs |
'개발' 카테고리의 다른 글
Jupyter notebook에 모듈 설치가 안될 때 (2) | 2018.11.04 |
---|---|
쿠키커터를 사용하여 Django 환경 세팅 (0) | 2018.10.21 |
[Typescript] 타입스크립트 문법 (0) | 2017.08.27 |
[Typescript] 타입스크립트 개발환경 세팅 (0) | 2017.08.27 |
[NodeJS] 쿠키(Cookie) (0) | 2017.07.21 |
댓글