회원 직접 작성 · 2026-09-04 10:07
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에서는:
이렇게 설정합니다.
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 사용은 거의 필수적인 습관이라고 볼 수 있습니다.