Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

virtualenv

하나의 시스템에 여러 개의 python 환경을 유지해야 할 때가 있다. 같은 모듈이라도 다른 버전의 python이 필요한 경우가 있기 때문이다. 이런 때 virtualenv를 이용해서 python 환경을 격리 할 수 있다.

리눅스 환경

테스트에 사용할 리눅스는 우분투 리눅스 서버 17.10 버전이다. 여기에는 python 2.7과 python 3가 모두 설치돼 있다.
$ python
Python 2.7.14 (default, Sep 23 2017, 22:06:14) 
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

$ python3
Python 3.6.3 (default, Oct  3 2017, 21:45:48) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

virtualenv 설치

3가지 방법으로 설치 할 수 있다.
# apt-get install python-virtualenv
# easy_install virtualenv
# pip install virtualenv
나는 apt-get으로 설치했다.

Virtualenv 사용과 설정

사용자는 하나 이상의 가상환경을 만들 수 있다. 이들 가상환경정보를 저장하기 위한 디렉토리를 만들기로 했다. 디렉토리의 이름은 virtualenvironment로 결정했다.
# mkdir ~/virtualenvironment
python3 기반의 flask 애플리케이션을 위한 가상환경을 만들었다.
# virtualenv --python=/usr/bin/python3 virtualenvironment/flask3
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /root/virtualenvironment/flask3/bin/python3
Also creating executable in /root/virtualenvironment/flask3/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
bash source 명령을 이용해서 python 가상환경을 변경한다.
# source virtualenvironment/flask3/bin/activate
(flask3) yundream@ubuntu # 
쉘 프롬프트 앞에 가상환경의 이름이 나오는 걸 확인 할 수 있다. python 버전을 확인해보자.
# python --version
Python 3.6.3
flask를 인스톨했다.
# pip install flask
# flask --version
Flask 1.0.2
Python 3.6.3 (default, Oct  3 2017, 21:45:48) 
[GCC 7.2.0]

이제 python2 기반의 flask 애플리케이션 환경을 만들기로 했다.
# virtualenv --python=/usr/bin/python2.7 virtualenvironment/flask2
# source virtualenvironment/flask2/bin/activate
(flask2) yundream@ubuntu:~#
# pip install flask
# flask --version
Flask 1.0.2
Python 2.7.14 (default, Sep 23 2017, 22:06:14) 
[GCC 7.2.0]

이렇게 python2와 python3 기반의 flask 애플리케이션 환경이 만들어졌고, 개발자는 두 개 환경에서 애플리케이션 개발을 수행 할 수 있다.

python3-venv

python3의 venv 모듈을 이용해서 python3 기반의 가상환경을 만들 수 있다.
# python3 -m venv virtualenvironment/myapp3