코드의 여백

[파이썬] 가상환경, 왜 꼭 써야 할까?

by rowing0328

※ 이 글은 이노그리드 교육 과정의 일부로, 저만의 관점과 해석을 더해 작성되었습니다.

 

Intro

파이썬을 공부하다 보면 꼭 듣게 되는 단어가 바로 '가상환경(Virtual Environment)'이다.

 

처음에는 그냥 pip install로 필요한 라이브러리만 깔면 될 것 같지만,

실제로 프로젝트가 늘어나고 남이 만든 코드를 실행해야 할 때

가상 환경이 왜 필요한지 몸소 깨닫게 된다.

 

이번 포스트에서는 가상환경이 도대체 왜 필요한지, 어떻게 만들고,

어떻게 써야 하는지 처음 접하는 분도 이해할 수 있도록 예시와 함께 쉽게 정리해 보겠다.

 

 

왜 가상환경이 필요한가

예를 들어보자.

 

내가 웹 크롤러를 하나 만들고 있다. 이 프로젝트에서는 requests 2.30 버전을 쓴다.

그런데 회사에서 시킨 또 다른 프로젝트는 requests 2.27 버전을 필요로 한다.

게다가 이쪽은 flask도 필요하고, 저쪽은 django도 써야 한다.

 

만약 컴퓨터에 requests, flask, django 등

모든 라이브러리를 한꺼번에 깔아 놓는다면 무슨 일이 벌어질까?

 

한 프로젝트에 맞춰 라이브러리를 업그레이드했더니,

다른 프로젝트가 갑자기 오류를 뿜는다!

 

파이썬의 라이브러리들은 서로 의존성도 다르고,

버전이 바뀌면 함수나 동작 방식도 달라지는 경우가 많다.

 

즉, 내 컴퓨터에 깔린 파이썬 '공용 공간'(전역 환경)에

여러 프로젝트의 라이브러리가 뒤섞이면

언제 터질지 모르는 시한폭탄이 되어버린다.

 

 

가상환경이란

바로 이 문제를 해결해 주는 것이 가상환경이다.

한마디로 '내 프로젝트 전용 미니 파이썬 세상'을 만들어주는 도구다.

 

각 프로젝트마다 가상환경을 따로 만들면,

프로젝트 1에서는 requests 2.27,

프로젝트 2에서는 requests 2.30 등

서로 충돌 없이 원하는 버전으로 마음껏 쓸 수 있다.

 

가상 환경은 파이썬, pip, 라이브러리들이 모두 독립적으로 관리된다.

내 컴퓨터 전체 파이썬과는 완전히 분리된다.

 

마치, '공용 부엌'이 아닌 '내 방 안 작은 싱크대'

같다고 생각하면 쉽다.

 

 

실제로 써보기 - 가상환경 실습

 

1. 가상환경 만들기

파이썬 표준 라이브러리만 써도 가상환경을 만들 수 있다.

(다른 도구로는 conda도 유명하지만, 이번 글에서는 가장 기본인 venv로 진행한다.)

 

[ 예제 코드 ]

# 1. 원하는 폴더로 이동
cd my_project_folder

# 2. 가상환경 생성 (여기서는 venv라는 이름 사용)
python -m venv venv
  • my_project_folder 폴더 안에 venv라는 폴더가 새로 생긴다.
  • 이 안에 파이썬, pip, 라이브러리 등등 내 프로젝트만의 독립 공간이 만들어진다.

 

2. 가상환경 활성화

가상환경을 '입장'한다고 생각하면 된다.

 

[ Windows ]

venv\Scripts\activate

 

[ Mac/Linux ]

venv\Scripts\activate

 

→ 터미널 앞에 (venv)가 붙으면 가상환경에 들어온 것!

 

3. 가상환경에서 라이브러리 설치

이제 이 안에서 pip install로 필요한 것만 설치하면

내 컴퓨터 전체에 영향을 주지 않는다.

 

[ 예제 코드 ]

pip install requests==2.27
  • 이제 이 가상환경 안에서만 requests 2.27 버전이 깔린다.
  • 나중에 다른 프로젝트는 전혀 영향을 받지 않는다.

 

4. 가상환경 나가기

일을 다 봤으면 밖으로 나온다.

 

[ 예제 코드 ]

deactivate
  • 이제 평소 내 컴퓨터 파이썬 환경으로 돌아온다.

 

 

가상환경이 주는 유연함 - 프로젝트가 꼬이지 않는 비결

프로젝트마다 각자 가상환경을 만들어주면

서로의 라이브러리 충돌 때문에 고생할 일이 거의 없다.

 

남이 만든 프로젝트를 다운로드하여서 실행할 때도

README에 적힌 대로 가상환경을 만들고,

pip install -r requirements.txt만 해주면

내 환경이 엉키지 않는다.

 

특히 회사나 팀 프로젝트를 하다 보면

모두가 같은 환경에서 작업해야 할 때가 많은데,

이때도 가상환경이 큰 역할을 한다.

 

 

일상 속의 비유 - 내 방, 네 방

가상환경을 처음 배울 때는 다소 낯설 수 있지만,

사실 생각해 보면

"내 방, 네 방 따로 있는 셈"이라 생각하면 쉽다.

 

공용 거실에서 친구랑 각자 짐을 꺼내 쓰다 보면

물건이 섞이기 쉽고,

서로 취향도 달라 불편하다.

 

하지만 각자 자기 방에서

필요한 것만 꺼내놓고,

나만의 방식으로 방을 꾸미면

더 편하고, 서로 피해도 주지 않는다.

 

가상환경도 똑같다.

 

 

마무리 - 앞으로의 프로젝트에 날개를 달다

파이썬을 제대로 쓰려면

가상환경은 선택이 아니라 필수다.

 

한 번만 연습해 보면,

왜 다들 가상환경을 외치는지

금방 이해가 갈 것이다.

 

앞으로 내 프로젝트마다

'나만의 방'을 마련해 주듯

가상환경을 만들어주는 습관을 들이면

내 파이썬 실력도 한 단계 업그레이드될 것이다.

 

 

참고 자료:

A Complete Guide to Python Virtual Environments

 

A Complete Guide to Python Virtual Environments (2022) – Dataquest

As you get started in Python, you may be wondering: What are Python virtual environments? Why should I use them? How do I use them? With examples, this tutorial answers these questions and more!

www.dataquest.io

블로그의 정보

코드의 여백

rowing0328

활동하기