3.Python 가상환경(venv) 사용법 — 프로젝트별 옷장을 따로 만드는 이유

저도 처음에는 필요한 라이브러리들을 한곳에 생각 없이 설치하곤 했습니다. 그러다 보니 프로젝트마다 요구하는 라이브러리가 제각각이고, 급기야 버전끼리 충돌이 일어나 개발 환경 전체가 꼬이는 뼈아픈 경험을 하기도 했습니다. 다양한 개발 환경에 맞춰 환경 변수를 독립적으로 다르게 관리해야 할 필요성을 절실히 깨달은 순간이었습니다.



이 가상환경이 정확히 무엇이고 왜 필요한지부터, venv 생성과 활성화, 라이브러리 관리, 그리고 VS Code와 연동하는 방법까지 — 실무에서 바로 쓸 수 있는 수준으로 안내해 드리겠습니다.


가상환경이란 무엇인가 — 프로젝트마다 다른 옷장

Python으로 여러 프로젝트를 진행하다 보면 반드시 마주치는 문제가 있습니다. 프로젝트 A는 Django 4.2가 필요한데, 프로젝트 B는 Django 3.1이 필요한 경우입니다. 컴퓨터 전체에 Python을 하나만 설치해 두고 쓴다면, 둘 중 하나는 반드시 충돌합니다.

가상환경은 이 문제를 해결하기 위해 등장한 개념입니다. 한 집 안에 가족이 여러 명 살아도 각자의 옷장이 따로 있어야 옷이 섞이지 않듯이, 각 프로젝트마다 독립된 Python 실행 공간을 만들어주는 것이 가상환경입니다. 프로젝트 A의 옷장에는 Django 4.2가, 프로젝트 B의 옷장에는 Django 3.1이 걸려 있어도 서로 간섭하지 않습니다.

가상환경이 필요한 이유

  • 버전 충돌 방지 — 프로젝트마다 다른 라이브러리 버전을 동시에 운용할 수 있습니다.
  • 시스템 환경 보호 — 운영체제가 기본으로 사용하는 Python 환경을 건드리지 않아 시스템 오류를 예방합니다.
  • 협업과 배포의 일관성 — 동료나 서버에 동일한 패키지 목록을 정확히 전달할 수 있습니다.
  • 불필요한 설치 정리가 쉬움 — 프로젝트가 끝나면 가상환경 폴더만 삭제하면 깔끔하게 정리됩니다.

venv란 무엇인가 — Python 표준 가상환경 도구

가상환경을 만드는 도구는 여러 가지가 있지만(venv, virtualenv, conda 등), 그중 venv는 Python 3.3 버전부터 표준 라이브러리에 기본 포함된 도구입니다. 별도 설치 없이 Python만 있으면 바로 사용할 수 있어 입문자에게 가장 추천되는 방식입니다.

💡 참고: 데이터 과학 분야에서는 conda(Anaconda)를 더 선호하는 경우도 많습니다. 하지만 웹 개발이나 일반 자동화 스크립트 작업이라면 venv만으로 충분합니다.


가상환경 생성하기

1단계 — 프로젝트 폴더로 이동

먼저 가상환경을 만들 프로젝트 폴더로 이동합니다.

cd my_project

2단계 — venv 생성 명령어 실행

아래 명령어로 가상환경을 생성합니다. venv는 만들고자 하는 가상환경의 이름이며, 보통 관례적으로 venv 또는 .venv를 사용합니다.

python -m venv venv

명령어를 실행하면 프로젝트 폴더 안에 venv라는 새 폴더가 생성됩니다. 이 폴더 안에 독립된 Python 실행 파일과 라이브러리 저장 공간이 들어 있습니다.



⚠️ macOS / Linux 사용자는 python 대신 python3 명령어를 사용해야 하는 경우가 있습니다.

python3 -m venv venv

가상환경 활성화하기 — 옷장 문을 여는 단계

가상환경을 만들었다고 해서 자동으로 사용되는 것은 아닙니다. 옷장을 만들어 놓고 문을 열지 않으면 옷을 꺼낼 수 없듯이, 활성화(activate) 과정을 거쳐야 비로소 그 환경 안에서 작업하게 됩니다.

Windows에서 활성화

venv\Scripts\activate

macOS / Linux에서 활성화

source venv/bin/activate

활성화에 성공하면 터미널 프롬프트 맨 앞에 (venv) 라는 표시가 나타납니다. 이는 "지금부터 이 가상환경 안에서 작업하고 있다"는 신호입니다.

(venv) C:\Users\user\my_project>



가상환경 비활성화하기

작업을 마치고 가상환경에서 빠져나오려면 아래 명령어 하나만 입력하면 됩니다.

deactivate

(venv) 표시가 사라지면 시스템 전역 Python 환경으로 돌아간 것입니다.


가상환경 안에서 라이브러리 설치하기

가상환경이 활성화된 상태에서 pip install 명령어를 사용하면, 해당 라이브러리는 이 프로젝트의 옷장 안에만 설치됩니다. 시스템 전역에는 영향을 주지 않습니다.

(venv) pip install requests
(venv) pip install django==4.2

설치된 라이브러리 목록 확인하기

(venv) pip list

라이브러리 목록을 파일로 저장하기 — requirements.txt

협업이나 배포 시 가장 중요한 작업 중 하나가 바로 이것입니다. 현재 가상환경에 설치된 라이브러리 목록을 파일로 저장해두면, 다른 사람이나 서버에서 동일한 환경을 그대로 복제할 수 있습니다.

(venv) pip freeze > requirements.txt

이렇게 생성된 requirements.txt 파일을 동료에게 전달하면, 상대방은 아래 명령어 한 줄로 동일한 라이브러리 구성을 그대로 설치할 수 있습니다.

(venv) pip install -r requirements.txt



VS Code와 가상환경 연동하기

VS Code를 사용 중이라면 생성한 가상환경을 편집기에 연결해야 자동완성과 디버깅 기능이 정확하게 작동합니다.

  1. Ctrl + Shift + P (macOS는 Cmd + Shift + P)로 명령 팔레트를 엽니다.
  2. Python: Select Interpreter 를 입력하고 선택합니다.
  3. 목록에서 ./venv/Scripts/python.exe (Windows) 또는 ./venv/bin/python (macOS/Linux) 항목을 선택합니다.

연결이 완료되면 VS Code 내장 터미널을 새로 열 때마다 가상환경이 자동으로 활성화됩니다.


자주 발생하는 오류와 해결법

오류 1 — Windows에서 activate 실행 시 "실행할 수 없습니다" 오류

원인: PowerShell의 실행 정책(Execution Policy) 제한
해결: PowerShell을 관리자 권한으로 열고 아래 명령어 입력

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

오류 2 — 가상환경을 활성화했는데 (venv) 표시가 안 보이는 경우

원인: 잘못된 경로에서 명령어 실행
해결: 가상환경 폴더가 있는 상위 디렉토리에서 명령어를 실행했는지 확인

오류 3 — pip install이 가상환경이 아닌 전역에 설치되는 경우

원인: 가상환경이 활성화되지 않은 상태에서 설치 진행
해결: 프롬프트 앞에 (venv) 표시가 있는지 반드시 확인 후 설치


마무리 — 핵심 요약

✅ 가상환경(venv) 사용법 체크리스트

  1. 가상환경 생성python -m venv venv
  2. 활성화 — Windows는 venv\Scripts\activate, macOS/Linux는 source venv/bin/activate
  3. 활성화 확인 — 프롬프트 앞 (venv) 표시 체크
  4. 라이브러리는 활성화된 상태에서 설치pip install 패키지명
  5. 목록 저장 및 공유pip freeze > requirements.txt
  6. 작업 종료 시 비활성화deactivate

다음으로 알아두면 좋은 것

가상환경에 익숙해졌다면, 프로젝트를 시작할 때마다 습관처럼 venv부터 생성하는 것을 권장합니다. 작은 토이 프로젝트라도 이 습관을 들여두면, 나중에 프로젝트 규모가 커졌을 때 라이브러리 충돌로 며칠을 허비하는 일을 미리 막을 수 있습니다. 추가로 .gitignore 파일에 venv/ 폴더를 등록해, 깃허브에 가상환경 폴더 자체가 업로드되지 않도록 관리하는 것도 함께 익혀두시길 권장합니다.


댓글

이 블로그의 인기 게시물

1.Python 설치부터 실행까지 10분 만에 끝내기 — 초보자도 바로 따라 하는 완벽 가이드

30.Python pyautogui로 마우스와 키보드 자동화하기: VSCode 실전 가이드

29.Python subprocess로 외부 명령어 실행하기: VSCode 실전 활용법