가상환경

요약

하나의 컴퓨터에서 프로젝트마다 독립적인 Python 실행 환경과 라이브러리를 사용할 수 있도록 만드는 기술이다.


가상환경이 필요한 이유

버전 충돌 방지: 개발자가 두가지의 프로젝트를 진행 중이다. 이 두 프로젝트에서 사용해야 하는 언어는 같은데, 다른 버전을 사용해야 하는 경우 버전충돌을 방지하기 위해 사용하게 된다.

정리: 프로젝트마다 필요한 tool만 담을 수 있어 컴퓨터 시스템이 지저분해지지 않는다.

협업 용이: 내가 어떤 라이브러리를 썼는지 리스트를 뽑아 다른 사람에게 전달하기 쉽다.


가상환경 구조

가상환경을 만들면 프로젝트 폴더 안에 특정 폴더(venv / .venv)가 생긴다. 이 안에는 다음 파일들이 들어가있다.

구성 요소 역할
Python 인터프리터 해당 환경에서 사용할 파이썬 실행 파일
Lib/site-packages 해당 환경에만 설치된 외부 라이브러리들
Scripts/bin 가상환경을 켜고 끄는 실행 스크립트

자주 사용하는 도구들

  1. venv : 파이썬에 기본으로 내장된 가장 표준적인 도구
  2. Conda : 데이터 사이언스나 머신러닝 분야에서 필수다.

Docker와의 차이점

가상환경을 써도 해결되지 않는 문제점이 있을 수 있다. (가상환경을 맞췄는데도 컴퓨터에 따라 서버가 안되는 경우), 서버에 배포해야 하는 경우

이런 경우 Docker을 사용한다.

구분 파이썬 가상환경 (venv, Conda) 도커 (Docker)
격리 범위 파이썬 라이브러리, 패키지 버전만 격리 운영체제(OS), 라이브러리, 네트워크 설정까지 통째로 격리
의존성 내 컴퓨터의 OS(Windows/Mac)에 의존 OS에 상관없이 컨테이너 내부 OS 환경에서 실행
주요 목적 파이썬 프로젝트 간 버전 충돌 방지 “내 컴퓨터에서 돌아가면 어디서든 돌아가게” 만들기
파일 구성 특정 폴더 내의 라이브러리 파일들 이미지(Image)라는 독립된 실행 파일 뭉치

Categories:

Updated:

Leave a comment