티스토리 뷰


+ 2018/8/23 추가


virtualenv 라이브러리를 사용하시기 전에, 파이썬에서 기본으로 제공하는 venv를 추천합니다.

venv 포스팅 http://jamanbbo.tistory.com/45




Virtualenv (가상환경)


python 프로그램을 만들다보면 어느 프로젝트에선 2.x 버전, 다른 프로젝트에선 3.x 버전 + 라이브러리가 필요할 때가 많다.


이럴때 프로젝트마다 환경을 분리하지않고 라이브러리를 사용하면 충돌이 일어날 수 있다.


이것을 막기위해서는 프로젝트마다 각각 다른환경을 만들어주는 virtualenv를 사용한다. 


virtualenv 는 프로젝트마다 버전을 정하고 프로젝트에 필요한 패키지를 그 환경에만 독립적이게 사용할 수 있도록 해준다.


virtualenv를 사용하기위해선 virtualenv 모듈을 설치해야한다. pip가 설치되어있다는 가정하,



pip install virtualenv


virtualenv를 설치해준다.


자신이 작업할 프로젝트 디렉토리로 이동한 후



virtualenv venv #가상환경 이름


가상환경을 만들어 준다. 


+(추가) 파이썬의 버전을 정하여 가상환경을 만들고 싶으면 

virtualenv  --python=c:\Python25\python.exe envname # python2.5 버전의 경로

이렇게 각 버전의 python.exe 경로를 붙여주면 된다. 


다른 간편한 방법도 있지만 나는 다 안되서 이렇게 하니 되었당.ㅎㅎ 



실제 프로젝트 디렉토리를 보면 가상환경폴더가 생성이 되어있을 것이다.


가상환경에서 작업을 하려면 가상환경을 실행시켜야한다. 



cd venv/Scripts >activate # 가상환경 실행
(venv) Project/venv> # 가상환경 진입
(venv) Project/venv > deactivate # 가상환경 종료

가상환경 폴더 안의 Scripts 폴더로 이동 후, activate 명령어를 입력하면 실행이 된다.


가상환경 종료는 deactivate 명령어를 입력한다.


(venv) 표시가 보이면 venv 가상환경안에 들어왔다는 뜻이다.


가상환경을 만들었으니 프로젝트에 필요한 라이브러리를 깔면 된다. 



pip install Django


virtualenv에는 자신이 만든 프로젝트를 배포 할 때, 가상환경을 똑같이 구현하는 것을 도와주는 기능이 있다.



(venv) pip freeze > requirements.txt


위의 명령어는 현재의 가상환경에 설치된 패키지 목록을 구해준다.


requirements.txt 로 하지 않아도 되지만 관례적으로 사용되는 파일 이름이다. ( 깃에서 많이보임 뜻이 요건 )



(othervenv) pip install -r requirements.txt


가상환경의 패키지 목록을 그대로 다운받아 동일한 가상환경을 구성하도록 한다. 







나는 맥에서 사용할때는 pyenv를 사용했는데 윈도우에서는 pyenv를 사용할 수 없어 부득이하게 virtualenv를 사용했다.


개인적으로 virtualenv를 사용하면서 여러모로 불편한 것을 느꼈다..  잡 오류도 많고.. 


맥 사용자에겐 pyenv 사용을 추천한다.




'Programing-Language > Python' 카테고리의 다른 글

python console 지우기  (2) 2018.02.12
Python None  (0) 2018.01.07
Python 삼항 연산자  (0) 2017.11.17
얕은 복사와 깊은 복사(deep copy)  (0) 2017.09.23
range,xrange  (0) 2017.09.18
댓글