자바는 maven으로, Rust는 Cargo로 패키지 관리를 할 수 있다면, 파이썬은 가상환경을 이용하여 프로젝트별로 runtime environment를 고립시켜 사용한다. 하나의 가상환경은 python interpreter와 dependency들로 구성된다.

Creation

1
2
3
4
5
6
7
8
9
10
11
12
13
# install virtualenv package first
$ pip install --upgrade virtualenv

# change to project directory
$ cd /your/project/directory

# create virtual environment
# Conventionaly, `venv` or `.venv`
$ virtualenv venv

# or create virtual environment with python interpreter version specified
# make sure the specified version of interpreter is installed on your PC
$ virtualenv venv --python={version}

Activation

1
2
3
4
5
6
7
8
9
10
# activation
$ source venv/bin/activate

# check python interpreter version
(venv) $ python --version
Python 3.9.1

# check python interpreter location
(venv) $ which python
/your/project/directory/venv/bin/python

Deactivation

1
2
3
4
5
# deactivation
(venv) $ deactivate

# after deactivation
$ 

Package Mangement

가상환경이 활성화된 상태에서 pip 등을 이용해 패키지를 설치하면 전역이 아닌, 활성화된 가상환경에 패키지가 설치된다. 주로 프로젝트 개발 시 필요한 패키지가 많기 때문에, requirements.txt 파일을 이용하여 한 번에 관리한다. 마찬가지로 requirements.txt라는 파일명은 관습이다.

1
2
3
4
5
# create requirements.txt
(venv) $ pip freeze > requirements.txt

# install requirements.txt
(venv) $ pip install -r requirements.txt

pip freeze 명령어를 사용하면 설치된 패키지들과 그 버젼을 확인할 수 있다. Shell pipe를 이용해서 그 내용을 requirements.txt에 담을 수 있다.

pip install에서 -r 옵션을 사용하면 파일을 인자로 받아서 그 파일 안의 패키지를 명시된 버젼으로 설치할 수 있다.


Back