venv는 모듈은 무엇인가. 이것은 python 프로그램이 실행하는 가상 환경을 만들어준다. 가 상 환경이라는 말이 어려운 용어로 다가올 수 있다. 간단히 말하면, python 프로그램을 실행하기 위한 인터프리터와 모듈을 독립된 공간 형태로 제공하는 것이라 볼 수 있다.
그렇다면 venv는 왜 사용할까. 개발 환경에서는 모듈을 이것저것 설치해가면서 필요하는 기능을 추가하게 될 것이다. 하지만 실제 제품의 실행 환경에서는 실제로 필요한 모듈만 설치해서 공간이나 성능에 최적화한 형태로 제공하고 싶을 것이다.
또한, 모듈의 버전에 따른 충돌 문제를 고려하지 않을 수 없다. 모듈의 버전을 가상 환경에 고정시킴으로써 python 프로그램이 안정적으로 동작할 수 있는 환경을 보장해주는 장점을 가질 수 있다.
이제 venv를 사용해보자. ubuntu 20.04 에서 작업을 했기 때문에, python 버전과 관련 패키지 설치는 이것을 기반으로 정리한다. ubuntu 다른 버전이나 os가 다를 경우에더라도 유사할 것이라고 생각한다.
우선, 가상 환경을 하나 만든다.
python3 -m venv first
venv가 없다고 나올 경우에는 다음과 같이 설치한다.
apt install python3.8-venv
first라는 디렉토리가 하나 생성되며, 이 디렉토리 아래에는 python 프로그램을 독립적으로 실행할 수 있는 환경이 구성된다. 특히 bin 디렉토리 내부를 보면 python과 pip가 들어있는 것을 확인할 수 있다. 또 가상환경을 활성화시키기 위해 사용하는 activate 스크립트도 들어 있다.
가상 환경을 활성화하가 위해서는 다음을 실행한다.
source ./first/bin/activate
쉘의 프롬프트의 앞에 (first)라는 내용이 추가된 것을 확인할 수 있다. 내가 어떤 이름의 가상 환경에 들어와있는지 확인할 수 있는 편리한 기능이다.
현재 어떤 패키지가 설치되어 있는지 확인해보면, ‘python의 초기 실행 환경은 이러하구나’ 를 알게 된다.
pip listPackage Version
------------- -------
pip 20.0.2
pkg-resources 0.0.0
setuptools 44.0.0