Python 가상환경 - 특정 버전으로 venv 설정하는 방법

Python에서 venv 가상환경은 독립적인 작업 환경을 제공하여, 프로젝트마다 다른 패키지와 Python 버전을 사용할 수 있게한다. 하지만 특정 Python 버전으로 가상환경을 설정하려면 몇 가지 추가 작업이 필요하다. 이번 글에서는 특정버전의 Python venv 가상환경을 설정하는 방법과 과정을 정리해본다.

특정버전의 python venv 환경 만들기

python venv 가상환경을 만들때, 아래 명령어로 실행한다. 이렇게 실행하면, 현재 로컬에 설치되어 있는 python 버전으로 가상환경이 구성되는 것이고, 로컬환경의 버전은 python --version 으로 미리 확인해보면 된다.

$ python -m venv .venv

만약 venv 가상환경을 특정 버전인 3.9로 설치를 하고 싶다면, 로컬환경에 python3.9 가 미리 설치되어 있어야 한다. 지금 docker 컨테이너에서 실행하다보니, 데비안os 환경이라 아래처럼 진행했지만, 본인 OS 환경에 맞는 설치명령어로 진행하면 된다.

$ sudo apt update
$ sudo apt install python3.9

그리고나서, python3.9 명령어를 이용하여, venv 가상환경을 만들면 된다. 그런데 python3.9-venv 설치가 필요하다고 메시지가 출력되었다. 지금 docker 컨테이너에서 실행중이고, 그 os 가 데비안이다보니, 추가로 설치해야 하는 패키지가 있나보다.

$ python3.9 -m venv .venv

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt install python3.9-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/workspaces/projectname/python/tensorflow/.venv/bin/python3.9', '-Im', 'ensurepip', '--upgrade', '--default-pip']

그래서 python3.9-venv를 설치했다.

$ sudo apt install python3.9-venv

준비가 다 되었으니, 다시 가상환경을 설치하면 끝이다.

$ python3.9 -m venv .venv

python venv 실행과 해제

원래 로컬에 설치된 python 은 3.12 버전이었고, activate 를 하고 나서는, 가상환경으로 3.9 버전의 python이 인식된다. 이렇게 버전이 바뀐게 확인되었다면 잘 실행된 것이다.

$ python --version
Python 3.12.1

$ source ./.venv/bin/activate

$ python --version
Python 3.9.5

가상환경을 해제하고 싶은 경우, 아래 명령어를 수행한다.

$ deactivate
python 

더 보면 좋을 글들