"가상환경은 python -m venv .venv 한 줄로 만들고, 지울 때는 폴더를 통째로 삭제하면 끝입니다. 지우는 전용 명령은 따로 없어요. 파이썬 공식 문서도 그렇게 설명하고 있습니다. 다만 폴더를 지우기 전에 확인할 것이 두 가지 있어서, 순서대로 적어 봅니다.

프로젝트마다 환경을 따로 두는 이유
한 컴퓨터에서 프로젝트를 둘 이상 굴리다 보면 패키지 버전이 부딪힐 때가 있습니다. A 프로젝트는 예전 버전을 요구하고 B 프로젝트는 최신 버전을 요구하는 식이죠. 전부 시스템 파이썬에 설치하면 하나를 맞추는 순간 다른 하나가 깨집니다. 프로젝트 폴더 안에 환경을 하나씩 두면 이 문제가 사라져요.
만들고 켜고 끄기
프로젝트 폴더로 이동해서 아래처럼 입력합니다. 폴더 이름은 마음대로 정해도 되는데, .venv를 쓰는 분이 많습니다.
- python -m venv .venv
- source .venv/bin/activate
두 번째 줄은 macOS와 리눅스의 bash, zsh 기준입니다. 윈도우 명령 프롬프트라면 .venv\Scripts\activate.bat, 파워셸이라면 .venv\Scripts\Activate.ps1을 실행합니다. 켜지고 나면 프롬프트 앞에 환경 이름이 붙어요. 이 상태에서 pip install을 하면 패키지가 그 폴더 안에만 들어갑니다. 작업을 마치고 나올 때는 deactivate만 입력하면 됩니다.
만들어진 폴더 안을 열어 보면 구조가 단순합니다. 맨 위에 설정 파일 pyvenv.cfg가 있고, 실행 파일이 든 bin(윈도우는 Scripts), 그리고 lib/pythonX.Y/site-packages가 있어요. 설치한 패키지는 전부 이 site-packages 안에 쌓입니다.
이 환경이 어느 파이썬을 바탕으로 만들어졌는지 궁금하면 pyvenv.cfg를 열어 보세요. home 항목에 원래 파이썬이 설치된 위치가 적혀 있습니다. 파이썬을 새 버전으로 바꾼 뒤에 환경이 이상하게 굴 때 첫 번째로 볼 곳이에요.
만들 때 붙일 수 있는 옵션도 둘 정도 알아 두면 편합니다. --upgrade-deps는 핵심 의존성인 pip를 PyPI의 최신 버전으로 올려 주고, --without-pip은 pip 설치를 건너뜁니다. 대부분은 기본값으로 충분합니다.

지울 때는 폴더만 지웁니다
환경을 더 쓰지 않는다면 먼저 deactivate로 빠져나온 다음 폴더를 삭제합니다. 터미널이라면 이렇습니다.
- deactivate
- rm -rf .venv
rm -rf는 되돌릴 수 없는 명령이라서 지우기 전에 pwd와 ls -a로 지금 있는 위치를 한 번 보는 습관을 들이세요. 홈 폴더에서 잘못 입력하면 곤란합니다. 윈도우에서는 탐색기에서 .venv 폴더를 지워도 같은 결과입니다.
그 전에 챙길 것이 있어요. 환경을 지우면 설치해 둔 패키지도 함께 사라지니까, 나중에 같은 환경을 다시 만들 일이 있다면 어떤 패키지를 깔았는지 목록을 파일로 남겨 두는 편이 좋습니다.
지우지 않고 비우기
환경이 꼬여서 처음부터 다시 하고 싶을 때는 --clear 옵션이 있습니다. 문서에는 환경 폴더가 이미 있으면 만들기 전에 안의 내용을 삭제한다고 적혀 있어요. 그래서 python -m venv --clear .venv를 입력하면 같은 자리에 빈 환경이 새로 생깁니다. 폴더를 직접 지우고 다시 만드는 것과 결과가 거의 같으니 편한 쪽을 쓰면 됩니다.
폴더를 옮기거나 복사하면 생기는 일
가상환경 폴더는 통째로 옮기면 안 됩니다. 환경 안에 설치된 실행 스크립트의 첫 줄(셔뱅)에는 그 환경이 있던 자리의 절대 경로가 들어가기 때문입니다. 공식 문서는 환경이 일반적으로 이식할 수 없다고 못 박고 있고, 상위 폴더를 옮겼다면 새 위치에서 환경을 다시 만들라고 안내합니다.
프로젝트 폴더 이름을 바꿨는데 갑자기 pip가 안 돌아간다면 이 경우일 가능성이 높아요. 낡은 폴더를 지우고 새로 만드세요.

참고한 자료
- Python 공식 문서, venv — Creation of virtual environments https://docs.python.org/3/library/venv.html (확인일 2026-10-06)"