Python venv 비활성화 방법

PythonBeginner
지금 연습하기

소개

Python 가상 환경은 프로젝트 종속성을 격리하여 관리하는 데 필수적입니다. 이 튜토리얼에서는 가상 환경을 비활성화하는 과정을 안내하여 프로젝트 간 전환을 용이하게 하고 깔끔한 개발 워크플로우를 유지할 수 있도록 돕습니다.

가상 환경 이해하기

비활성화하기 전에 가상 환경이 무엇이며 왜 중요한지 간략하게 살펴보겠습니다.

가상 환경은 특정 Python 버전과 관련 패키지를 담고 있는 자체 포함 디렉토리입니다. 이러한 격리는 동일한 패키지의 다른 버전을 필요로 할 수 있는 서로 다른 프로젝트 간의 충돌을 방지합니다.

가상 환경을 사용하는 이유?

  • 격리 (Isolation): 프로젝트 종속성을 분리하여 유지합니다.
  • 버전 관리 (Version Management): 서로 다른 프로젝트에 대해 서로 다른 Python 버전을 사용할 수 있습니다.
  • 재현성 (Reproducibility): 서로 다른 머신에서 일관된 환경을 보장합니다.

데모 목적으로 가상 환경을 만들어 보겠습니다. 터미널을 열고 다음 명령을 실행합니다.

sudo apt update
sudo apt install -y python3.10-venv

이제 현재 디렉토리 (/home/labex/project) 에 가상 환경을 만듭니다.

python3 -m venv my_venv

이 명령은 가상 환경 파일을 포함하는 my_venv라는 디렉토리를 생성합니다.

이제 가상 환경을 활성화합니다.

source my_venv/bin/activate

Terminal showing activated venv

터미널 프롬프트가 가상 환경이 활성화되었음을 나타내도록 변경된 것을 확인할 수 있습니다 (예: (my_venv) labex:project/ $).

가상 환경 비활성화하기

가상 환경을 비활성화하는 것은 간단합니다. 단순히 deactivate 명령을 사용하면 됩니다.

터미널에서 다음을 입력합니다.

deactivate

이 명령을 실행하면 터미널 프롬프트가 원래 상태로 돌아가 가상 환경이 더 이상 활성화되지 않았음을 나타냅니다.

확인:

가상 환경이 비활성화되었는지 확인하려면 which python 명령을 확인할 수 있습니다.

which python
/usr/bin/python

가상 환경이 비활성화된 경우, 경로는 가상 환경 내의 Python 설치가 아닌 시스템의 Python 설치를 가리켜야 합니다.

프로젝트 간 전환하기

가상 환경을 사용하는 주요 이유 중 하나는 서로 다른 종속성을 가진 서로 다른 프로젝트 간에 쉽게 전환할 수 있다는 것입니다.

이 시나리오를 시뮬레이션해 보겠습니다. project_aproject_b라는 두 개의 프로젝트가 있고, 각 프로젝트에는 자체 가상 환경이 있다고 가정합니다.

먼저 project_a와 해당 가상 환경에 대한 디렉토리를 만들어 보겠습니다.

mkdir project_a
cd project_a
python3 -m venv venv_a

이제 project_a에 대한 가상 환경을 활성화합니다.

source venv_a/bin/activate

터미널 프롬프트에서 (venv_a)를 볼 수 있습니다.

이제 project_b와 해당 가상 환경에 대한 디렉토리를 만들어 보겠습니다. 먼저 현재 환경을 비활성화하고 프로젝트 루트 디렉토리로 다시 이동합니다.

deactivate
cd ..
mkdir project_b
cd project_b
python3 -m venv venv_b

이제 project_b에 대한 가상 환경을 활성화합니다.

source venv_b/bin/activate

터미널 프롬프트에서 (venv_b)를 볼 수 있습니다.

현재 환경을 비활성화한 다음 원하는 환경을 활성화하는 이 패턴을 따르면 종속성 충돌 없이 프로젝트 간에 원활하게 전환할 수 있습니다.

정리하기

이 랩에서 생성된 가상 환경을 정리하려면 디렉토리를 제거하면 됩니다.

먼저, 어떤 가상 환경에도 있지 않은지 확인합니다. 프롬프트에 가상 환경 이름 (예: (venv_b)) 이 표시되면 비활성화합니다.

deactivate

이제 아직 해당 디렉토리에 있지 않다면, 메인 프로젝트 디렉토리로 다시 이동합니다.

cd /home/labex/project

마지막으로, 가상 환경 디렉토리를 제거합니다.

rm -rf my_venv project_a project_b

이 명령은 my_venv, project_a, project_b 디렉토리와 가상 환경을 포함한 해당 내용을 제거합니다.

요약

이 랩에서는 deactivate 명령을 사용하여 Python 가상 환경을 비활성화하는 방법을 배웠습니다. 또한 프로젝트 종속성을 관리하는 데 있어 가상 환경의 중요성과 서로 다른 프로젝트 환경 간에 효과적으로 전환하는 방법을 살펴보았습니다. 이 기술은 깨끗하고 체계적인 개발 워크플로우를 유지하는 데 매우 중요합니다.