여태까지는 python 2.7 을 사용했고, 사용하는 라이브러리가 항상 일정했기 때문에 가상 개발 환경이 필요가 없었다.
python 3.6.5 로 갈아타면서, 동시에 여러 버전을 사용할 이슈가 생겨버렸다.
Docker 를 사용하는 것도 생각해봤는데,
최소 4개의 개발 환경에서 (윈도우 2, 우분투 2) 작업해야 하는데 각각 도커 셋팅하기 좀 귀찮기도하고,
애초에 python 은 virtualenv 가 워낙 편하게 되어 있어서 이걸 그냥 사용하는 것으로 결심.
virtualenv 사용 방법은 정말 간단하다.
일단 설치
$ pip install virtualenv
그리고, 가상 환경으로 사용할 프로젝트 폴더로 이동
$ cd ~/project/greatapp
$ virtualenv -p python3 venv
그리고, activate 시키면 된다.
$ source venv/bin/activate
끝.
여기서, 가상 환경 이름을 venv 로 할지 아니면 .venv 로 할지 꽤 고민을 했는데
고민 끝에 일반적으로 많이 사용하는 venv 로 하기로 결정.
.venv 를 고려했던 이유는 .idea 을 비롯해서 .gitignore 에 포함할 이름을 비슷한 패턴으로 유지하고 싶어서였는데,
윈도우에서 .venv 라는 폴더 관리가 이슈도 있고, venv 쪽이 더 대세인것 같아서...
이렇게 실행하면 프롬프트 앞쪽에 (venv) 라고 붙어서, 가상 환경 사용 상태임을 명확하게 알 수 있다.
그 후에
$ pip install flask
$ pip install sqlalchemy
등등, 팩키지 설치해주면 된다.
설치한 팩키지는 .gitignore 에서 제외 처리 했기 때문에 다른 환경에서는 다시 설치해줘야 하는데,
$ pip freeze > requirements.txt
이렇게 저장해둘 수 있다.
근데, 매번 source venv/bin/activate 이거 입력하는게 좀 귀찮다.
그래서 등장한 것이 바로 autoenv
일단 설치.
$ pip install autoenv
설치했으면 실행
Ubuntu 17.10 기준으로 autoenv 실행은 $ source ~/.local/bin/activate.sh 로 한다.
이왕이면 .bashrc 에 넣어두면 편하다.
autoenv 가 작동하면, 가상 환경으로 설정한 폴더에 .env 가 있으면 자동으로 실행해준다.
source venv/bin/activate 를 .env 에 입력해 놓으면, 폴더 진입할 때 자동으로 가상 환경으로 바뀐다.
Nice!
이 상태에서 사용하는 python, pip 는 모두 venv/bin 에 있는 것을 사용한다.
$ which python
/home/tetris/project/greatapp/venv/bin/python
PyCharm 에서 가상 환경 사용하는 것은 간단하다.
Project Setting - Project Interpreter 에서 톱니바퀴 누르고 Add 선택하면, Virtual Environment 설정이 나오는데...
venv/bin/python 을 선택해주면 된다.
가상 환경에서 나가려면 $ deactivate 를 입력하면 된다.
상위 폴더에 .env 를 만들고 deactivate 를 자동으로 실행해주는 방법도 있는데, 해보니까 이건 그렇게 유용하지 않더라.
*추가
하위 폴더로 접근할 떄에도 .env 를 호출하는 문제가 생김
.env 를 아래와 같이 변경하면 프로젝트 루트 폴더에서만 작동
#!/bin/bash
if [ "$PWD" = "/home/tetris/project/greatapp" ]; then
source venv/bin/activate
fi
'개발 > 언어' 카테고리의 다른 글
python 3.6 으로 변경 (0) | 2018.04.10 |
---|---|
C++ 을 빛내는 boost 라이브러리, 약간의 아쉬움. (7) | 2012.03.22 |
PHP에서 웹 페이지 내용 또는 헤더 값 가져오는 코드 (0) | 2011.01.10 |
실행파일(exe)의 icon 변경 (ico, exe) (0) | 2010.11.09 |
어셈블러는 배울 가치가 있을까? (2) | 2008.01.10 |