본문 바로가기
python

Python - 가상환경, Virtualenv란? 사용법과 스탠다드 라이브러리(venv)와의 차이 설명

by 맑은안개 2022. 7. 20.

from Pixabay

Virtualenv란?

Virtualenv는 글로벌 Python영역과 별개로 독립된 가상환경을 제공한다. 사용자는 이를 사용하여 프로젝트 별 Python의 버전, 사용되는 라이브러리의 버전을 특정할 수 있다. 물론 같은 프로젝트에서도 여러 가상환경을 만들어 버전관리할 수 있다.

Virtualenv VS venv

Python3.3버전 부터 Virtualenv의 일부 기능을 venv이란 모듈로서 스탠다드 라이브러리로 제공한다.
몇가지 차이점이 있는데 중요한 부분만 살펴보자면, venv는 다음의 단점을 갖는다.

  • pip를 통해 업그레이드를 할 수 없다.
  • 더 느리다. ( 정확히 어떤 작용에서 느린건지는 모르겠다. )
  • 가상환경과 관련된 프로그래밍 API제공이 적다.
  • .gitignore 설정이 제공되지 않는다. ( venv로 가상환경 설정 시 gitignore를 추가해줘야 하는 번거러움이 있다. )

 


1.Install Virtualenv

실행환경 - Windows, Git bash

$ python -m pip install --upgrade pip
$ python -m pip install virtualenv

$ which virtualenv
/c/Users/user/AppData/Local/Programs/Python/Python310/Scripts/virtualenv

2.가상환경 생성

Python프로젝트 위치로 이동, 가상환경을 만든다.

$virtualenv env

p옵션을 사용하여 파이선 버전을 특정할 수 있다.

$ virtualenv -p /path/to/python-3.10.1/bin/python3 venv
  • env명칭은 관례에 따라 지은것일뿐, 사용자가 원하는데로 가상환경이름을 설정한다.
  • 실행 후 해당 가상환경의 이름으로 디렉토리가 생성되고 하위에 기본라이브러리, Script등이 생성된다.

3.가상환경 활성화

활성화를 위해 프로젝트 디렉토리/가상환경/Scripts에 위치한 activate실행파일을 실행한다.

$ source env/Scripts/activate
(env)

활성화 후 pip list 커맨드 명령을 실행하면 최소 도구만 설치되어 있는 것을 확인할 수 있다.

$ pip list
Package    Version
---------- -------
pip        22.1.2
setuptools 62.6.0
wheel      0.37.1
(env) 
  • Git bash에 위와같이 가상환경(env)이 활성화 된 것을 확인할 수 있다.

4.가상환경 requirements.txt 생성

가상환경에서 기본으로 제공하는 pip툴을 사용하여 pip freeze를 사용해 라이브러리 리스트를 백업, 복구할 수 있다.

$ pip freeze > requirements.txt
(env) 

5.가상환경 비활성화

$ deactivate

6.가상환경 삭제

물리적으로 가상환경명으로 생성된 디렉토리를 삭제하면 된다.

$ rm -rf env
반응형