목록

Python 가상환경(venv)의 개념과 사용법 요약

회원 직접 작성 · 2026-09-04 10:07
Python 가상환경(venv)의 개념과 사용법 요약

이 기사를 내 블로그에 포스팅하려면 로그인이 필요합니다.

아직 AI 요약이 생성되지 않았습니다.

포스팅 원고

Python 가상환경(venv)의 개념과 사용법 요약

1. venv란?

venv는 Python에서 프로젝트별로 독립된 실행 환경을 만드는 기능입니다.

쉽게 말하면, 하나의 컴퓨터 안에 여러 개의 “분리된 Python 작업 공간”을 만드는 것입니다.

Python 프로젝트를 하다 보면 프로젝트마다 필요한 라이브러리 버전이 다를 수 있습니다.

예를 들어:

  • 프로젝트 A: Django 3.2 필요

  • 프로젝트 B: Django 5.0 필요

이 둘을 하나의 전역 Python 환경에 설치하면 버전 충돌이 발생할 수 있습니다.

이 문제를 해결하기 위해 사용하는 것이 가상환경입니다.

venv를 사용하면 각 프로젝트가 자기만의 Python과 패키지 설치 공간을 갖게 됩니다.




2. 왜 venv를 사용하는가?

1) 패키지 충돌 방지

프로젝트마다 필요한 라이브러리 버전이 다를 수 있습니다.



project_a -> requests==2.25.0

project_b -> requests==2.31.0



가상환경을 사용하면 서로 다른 버전을 각각 독립적으로 설치할 수 있습니다.




2) 프로젝트 관리가 쉬워짐

프로젝트에 필요한 패키지만 따로 관리할 수 있습니다.



pip freeze > requirements.txt



이 명령어로 현재 프로젝트에서 사용하는 패키지 목록을 저장할 수 있습니다.

다른 사람이 같은 환경을 만들 때는 다음처럼 설치하면 됩니다.



pip install -r requirements.txt






3) 전역 Python 환경을 깨끗하게 유지

가상환경을 사용하지 않고 계속 패키지를 설치하면 시스템 전체 Python 환경이 복잡해집니다.

venv를 쓰면 프로젝트가 끝난 뒤 해당 가상환경 폴더만 삭제하면 됩니다.




3. venv 기본 사용 흐름

일반적인 사용 순서는 다음과 같습니다.

  • 프로젝트 폴더 생성

  • 가상환경 생성

  • 가상환경 활성화

  • 필요한 패키지 설치

  • 작업

  • 패키지 목록 저장

  • 가상환경 비활성화




4. 가상환경 생성 방법

먼저 프로젝트 폴더를 만듭니다.



mkdir my_project

cd my_project



그다음 가상환경을 생성합니다.



python -m venv venv



여기서 앞의 venv는 Python의 가상환경 모듈 이름이고, 뒤의 venv는 생성할 폴더 이름입니다.

즉:



python -m venv venv



의 의미는 다음과 같습니다.

Python의 venv 모듈을 사용해서 venv라는 이름의 가상환경 폴더를 만들어라.

폴더 이름은 꼭 venv일 필요는 없습니다.



python -m venv .venv

python -m venv env

python -m venv myenv



실무에서는 .venv 또는 venv라는 이름을 자주 사용합니다.




5. 가상환경 활성화 방법

가상환경을 생성한 뒤에는 반드시 활성화해야 합니다.

Windows CMD



venv\Scripts\activate



Windows PowerShell



venv\Scripts\Activate.ps1



만약 PowerShell에서 실행 정책 오류가 나면 다음 명령어를 사용할 수 있습니다.



Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser



그 후 다시 활성화합니다.



venv\Scripts\Activate.ps1



macOS / Linux



source venv/bin/activate






6. 가상환경이 활성화되었는지 확인하는 방법

가상환경이 활성화되면 터미널 앞에 보통 다음처럼 표시됩니다.



(venv) $



또는:



(.venv) $



Python 경로를 확인해도 됩니다.

Windows



where python



macOS / Linux



which python



가상환경 폴더 안의 Python 경로가 나오면 정상입니다.

예:



/home/user/my_project/venv/bin/python



또는 Windows에서는:



C:\Users\user\my_project\venv\Scripts\python.exe






7. 패키지 설치하기

가상환경이 활성화된 상태에서 pip를 사용하면 해당 가상환경 안에만 패키지가 설치됩니다.

예를 들어 requests를 설치하려면:



pip install requests



Django를 설치하려면:



pip install django



특정 버전을 설치할 수도 있습니다.



pip install django==4.2



설치된 패키지 목록은 다음 명령어로 확인합니다.



pip list






8. requirements.txt 사용법

Python 프로젝트에서는 보통 필요한 패키지 목록을 requirements.txt 파일에 저장합니다.

현재 가상환경의 패키지 목록을 저장하려면:



pip freeze > requirements.txt



예시:



Django==4.2.7

requests==2.31.0

numpy==1.26.2



다른 컴퓨터에서 같은 환경을 만들고 싶다면 먼저 가상환경을 만든 뒤 다음 명령어를 실행합니다.



pip install -r requirements.txt



이렇게 하면 requirements.txt에 적힌 패키지들이 한 번에 설치됩니다.




9. 가상환경 비활성화

작업을 마친 뒤 가상환경을 종료하려면 다음 명령어를 입력합니다.



deactivate



그러면 터미널 앞의 (venv) 표시가 사라지고, 원래 Python 환경으로 돌아갑니다.




10. 가상환경 삭제 방법

가상환경은 별도의 폴더이므로 삭제하려면 해당 폴더를 지우면 됩니다.

예를 들어 가상환경 폴더 이름이 venv라면:

Windows



rmdir /s /q venv



macOS / Linux



rm -rf venv



삭제 후 다시 만들고 싶으면 다음처럼 하면 됩니다.



python -m venv venv



그리고 필요한 패키지를 다시 설치합니다.



pip install -r requirements.txt






11. 실전 예제

새로운 Python 프로젝트를 시작한다고 가정해보겠습니다.



mkdir flask_project

cd flask_project

python -m venv venv



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

Windows



venv\Scripts\activate



macOS / Linux



source venv/bin/activate



Flask를 설치합니다.



pip install flask



설치된 패키지를 저장합니다.



pip freeze > requirements.txt



작업이 끝나면 비활성화합니다.



deactivate



다음에 다시 작업할 때는 프로젝트 폴더로 이동한 후 가상환경만 다시 활성화하면 됩니다.



cd flask_project

source venv/bin/activate



Windows라면:



cd flask_project

venv\Scripts\activate






12. venv 폴더를 Git에 올리면 안 되는 이유

가상환경 폴더에는 설치된 라이브러리 파일들이 들어 있습니다.

이 폴더는 용량이 크고, 운영체제마다 구조가 다를 수 있습니다.

따라서 GitHub 같은 저장소에는 venv 폴더를 올리지 않는 것이 일반적입니다.

대신 .gitignore 파일에 다음과 같이 추가합니다.



venv/

.venv/



그리고 패키지 목록은 requirements.txt로 관리합니다.



pip freeze > requirements.txt



즉, 저장소에는 보통 다음은 포함합니다.



main.py

requirements.txt

README.md



다음은 포함하지 않습니다.



venv/

.venv/






13. 자주 쓰는 명령어 정리

작업

명령어

가상환경 생성

python -m venv venv

Windows CMD 활성화

venv\Scripts\activate

Windows PowerShell 활성화

venv\Scripts\Activate.ps1

macOS/Linux 활성화

source venv/bin/activate

패키지 설치

pip install 패키지명

설치된 패키지 확인

pip list

패키지 목록 저장

pip freeze > requirements.txt

패키지 목록으로 설치

pip install -r requirements.txt

가상환경 비활성화

deactivate

가상환경 삭제

폴더 삭제




14. venv 사용 시 주의할 점

1) 가상환경을 활성화한 뒤 패키지를 설치해야 함

가상환경을 활성화하지 않고 pip install을 하면 전역 Python 환경에 설치될 수 있습니다.

항상 터미널 앞에 (venv) 또는 (.venv)가 있는지 확인하는 습관이 좋습니다.




2) Python 버전에 주의

가상환경은 생성할 때 사용한 Python 버전을 기반으로 만들어집니다.

예를 들어:



python3.11 -m venv venv



이렇게 만들면 Python 3.11 기반 가상환경이 됩니다.

여러 Python 버전이 설치되어 있다면 다음처럼 확인할 수 있습니다.



python --version



또는:



python3 --version






3) IDE 설정 확인

VS Code나 PyCharm 같은 IDE를 사용할 때는 해당 프로젝트의 Python 인터프리터가 가상환경의 Python으로 설정되어 있는지 확인해야 합니다.

예를 들어 VS Code에서는:

  • Ctrl + Shift + P

  • Python: Select Interpreter

  • 프로젝트의 venv 또는 .venv 선택

이렇게 설정합니다.




15. 핵심 정리

venv는 Python 프로젝트별로 독립된 개발 환경을 만드는 도구입니다.

핵심 목적은 다음과 같습니다.

  • 프로젝트별 패키지 분리

  • 라이브러리 버전 충돌 방지

  • 전역 Python 환경 보호

  • 협업과 배포 환경 관리 용이

가장 기본적인 사용법은 다음 네 줄로 요약할 수 있습니다.



python -m venv venv

source venv/bin/activate   # macOS/Linux

pip install 필요한패키지

pip freeze > requirements.txt



Windows에서는 활성화 명령만 다릅니다.



venv\Scripts\activate



Python 프로젝트를 안정적으로 관리하려면 venv 사용은 거의 필수적인 습관이라고 볼 수 있습니다.



📄 원문 전문
Python 가상환경(venv)의 개념과 사용법 요약 1. venv란? venv는 Python에서 프로젝트별로 독립된 실행 환경을 만드는 기능입니다. 쉽게 말하면, 하나의 컴퓨터 안에 여러 개의 “분리된 Python 작업 공간”을 만드는 것입니다. Python 프로젝트를 하다 보면 프로젝트마다 필요한 라이브러리 버전이 다를 수 있습니다. 예를 들어: 프로젝트 A: Django 3.2 필요 프로젝트 B: Django 5.0 필요 이 둘을 하나의 전역 Python 환경에 설치하면 버전 충돌이 발생할 수 있습니다. 이 문제를 해결하기 위해 사용하는 것이 가상환경입니다. venv를 사용하면 각 프로젝트가 자기만의 Python과 패키지 설치 공간을 갖게 됩니다. 2. 왜 venv를 사용하는가? 1) 패키지 충돌 방지 프로젝트마다 필요한 라이브러리 버전이 다를 수 있습니다. project_a -> requests==2.25.0 project_b -> requests==2.31.0 가상환경을 사용하면 서로 다른 버전을 각각 독립적으로 설치할 수 있습니다. 2) 프로젝트 관리가 쉬워짐 프로젝트에 필요한 패키지만 따로 관리할 수 있습니다. pip freeze > requirements.txt 이 명령어로 현재 프로젝트에서 사용하는 패키지 목록을 저장할 수 있습니다. 다른 사람이 같은 환경을 만들 때는 다음처럼 설치하면 됩니다. pip install -r requirements.txt 3) 전역 Python 환경을 깨끗하게 유지 가상환경을 사용하지 않고 계속 패키지를 설치하면 시스템 전체 Python 환경이 복잡해집니다. venv를 쓰면 프로젝트가 끝난 뒤 해당 가상환경 폴더만 삭제하면 됩니다. 3. venv 기본 사용 흐름 일반적인 사용 순서는 다음과 같습니다. 프로젝트 폴더 생성 가상환경 생성 가상환경 활성화 필요한 패키지 설치 작업 패키지 목록 저장 가상환경 비활성화 4. 가상환경 생성 방법 먼저 프로젝트 폴더를 만듭니다. mkdir my_project cd my_project 그다음 가상환경을 생성합니다. python -m venv venv 여기서 앞의 venv는 Python의 가상환경 모듈 이름이고, 뒤의 venv는 생성할 폴더 이름입니다. 즉: python -m venv venv 의 의미는 다음과 같습니다. Python의 venv 모듈을 사용해서 venv라는 이름의 가상환경 폴더를 만들어라. 폴더 이름은 꼭 venv일 필요는 없습니다. python -m venv .venv python -m venv env python -m venv myenv 실무에서는 .venv 또는 venv라는 이름을 자주 사용합니다. 5. 가상환경 활성화 방법 가상환경을 생성한 뒤에는 반드시 활성화해야 합니다. Windows CMD venv\Scripts\activate Windows PowerShell venv\Scripts\Activate.ps1 만약 PowerShell에서 실행 정책 오류가 나면 다음 명령어를 사용할 수 있습니다. Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 그 후 다시 활성화합니다. venv\Scripts\Activate.ps1 macOS / Linux source venv/bin/activate 6. 가상환경이 활성화되었는지 확인하는 방법 가상환경이 활성화되면 터미널 앞에 보통 다음처럼 표시됩니다. (venv) $ 또는: (.venv) $ Python 경로를 확인해도 됩니다. Windows where python macOS / Linux which python 가상환경 폴더 안의 Python 경로가 나오면 정상입니다. 예: /home/user/my_project/venv/bin/python 또는 Windows에서는: C:\Users\user\my_project\venv\Scripts\python.exe 7. 패키지 설치하기 가상환경이 활성화된 상태에서 pip를 사용하면 해당 가상환경 안에만 패키지가 설치됩니다. 예를 들어 requests를 설치하려면: pip install requests Django를 설치하려면: pip install django 특정 버전을 설치할 수도 있습니다. pip install django==4.2 설치된 패키지 목록은 다음 명령어로 확인합니다. pip list 8. requirements.txt 사용법 Python 프로젝트에서는 보통 필요한 패키지 목록을 requirements.txt 파일에 저장합니다. 현재 가상환경의 패키지 목록을 저장하려면: pip freeze > requirements.txt 예시: Django==4.2.7 requests==2.31.0 numpy==1.26.2 다른 컴퓨터에서 같은 환경을 만들고 싶다면 먼저 가상환경을 만든 뒤 다음 명령어를 실행합니다. pip install -r requirements.txt 이렇게 하면 requirements.txt에 적힌 패키지들이 한 번에 설치됩니다. 9. 가상환경 비활성화 작업을 마친 뒤 가상환경을 종료하려면 다음 명령어를 입력합니다. deactivate 그러면 터미널 앞의 (venv) 표시가 사라지고, 원래 Python 환경으로 돌아갑니다. 10. 가상환경 삭제 방법 가상환경은 별도의 폴더이므로 삭제하려면 해당 폴더를 지우면 됩니다. 예를 들어 가상환경 폴더 이름이 venv라면: Windows rmdir /s /q venv macOS / Linux rm -rf venv 삭제 후 다시 만들고 싶으면 다음처럼 하면 됩니다. python -m venv venv 그리고 필요한 패키지를 다시 설치합니다. pip install -r requirements.txt 11. 실전 예제 새로운 Python 프로젝트를 시작한다고 가정해보겠습니다. mkdir flask_project cd flask_project python -m venv venv 가상환경을 활성화합니다. Windows venv\Scripts\activate macOS / Linux source venv/bin/activate Flask를 설치합니다. pip install flask 설치된 패키지를 저장합니다. pip freeze > requirements.txt 작업이 끝나면 비활성화합니다. deactivate 다음에 다시 작업할 때는 프로젝트 폴더로 이동한 후 가상환경만 다시 활성화하면 됩니다. cd flask_project source venv/bin/activate Windows라면: cd flask_project venv\Scripts\activate 12. venv 폴더를 Git에 올리면 안 되는 이유 가상환경 폴더에는 설치된 라이브러리 파일들이 들어 있습니다. 이 폴더는 용량이 크고, 운영체제마다 구조가 다를 수 있습니다. 따라서 GitHub 같은 저장소에는 venv 폴더를 올리지 않는 것이 일반적입니다. 대신 .gitignore 파일에 다음과 같이 추가합니다. venv/ .venv/ 그리고 패키지 목록은 requirements.txt로 관리합니다. pip freeze > requirements.txt 즉, 저장소에는 보통 다음은 포함합니다. main.py requirements.txt README.md 다음은 포함하지 않습니다. venv/ .venv/ 13. 자주 쓰는 명령어 정리 작업 명령어 가상환경 생성 python -m venv venv Windows CMD 활성화 venv\Scripts\activate Windows PowerShell 활성화 venv\Scripts\Activate.ps1 macOS/Linux 활성화 source venv/bin/activate 패키지 설치 pip install 패키지명 설치된 패키지 확인 pip list 패키지 목록 저장 pip freeze > requirements.txt 패키지 목록으로 설치 pip install -r requirements.txt 가상환경 비활성화 deactivate 가상환경 삭제 폴더 삭제 14. venv 사용 시 주의할 점 1) 가상환경을 활성화한 뒤 패키지를 설치해야 함 가상환경을 활성화하지 않고 pip install을 하면 전역 Python 환경에 설치될 수 있습니다. 항상 터미널 앞에 (venv) 또는 (.venv)가 있는지 확인하는 습관이 좋습니다. 2) Python 버전에 주의 가상환경은 생성할 때 사용한 Python 버전을 기반으로 만들어집니다. 예를 들어: python3.11 -m venv venv 이렇게 만들면 Python 3.11 기반 가상환경이 됩니다. 여러 Python 버전이 설치되어 있다면 다음처럼 확인할 수 있습니다. python --version 또는: python3 --version 3) IDE 설정 확인 VS Code나 PyCharm 같은 IDE를 사용할 때는 해당 프로젝트의 Python 인터프리터가 가상환경의 Python으로 설정되어 있는지 확인해야 합니다. 예를 들어 VS Code에서는: Ctrl + Shift + P Python: Select Interpreter 프로젝트의 venv 또는 .venv 선택 이렇게 설정합니다. 15. 핵심 정리 venv는 Python 프로젝트별로 독립된 개발 환경을 만드는 도구입니다. 핵심 목적은 다음과 같습니다. 프로젝트별 패키지 분리 라이브러리 버전 충돌 방지 전역 Python 환경 보호 협업과 배포 환경 관리 용이 가장 기본적인 사용법은 다음 네 줄로 요약할 수 있습니다. python -m venv venv source venv/bin/activate   # macOS/Linux pip install 필요한패키지 pip freeze > requirements.txt Windows에서는 활성화 명령만 다릅니다. venv\Scripts\activate Python 프로젝트를 안정적으로 관리하려면 venv 사용은 거의 필수적인 습관이라고 볼 수 있습니다.