파이썬 가상환경 설정 번외1편. venv만으로 끝내는 “최소 루틴”

파이썬 가상환경 설정 번외 포스트 썸네일

파이썬 가상환경을 설명할 때 도구가 너무 많이 등장하면 초보자는 오히려 막막해지죠.
virtualenv, conda, poetry, pipenv… 이름만 들어도 숨이 차죠.

그런데 재미있는 사실이 있어요.

대부분의 팀/프로젝트는 표준 venv 하나만으로도 충분히 안정적으로 굴러갑니다.

왜냐하면 우리가 진짜로 필요한 건 딱 네 가지니까요.

  1. 프로젝트별로 패키지 공간 분리
  2. 설치한 패키지 목록을 파일로 남기기(requirements)
  3. 다른 PC에서 그대로 재현하기
  4. 이 흐름이 “너무 어렵지 않을 것”

venv는 이 4가지를 “파이썬 기본 기능만으로” 해결해줍니다.

오늘의 큰 그림(venv 사용법 요약)

  • 가상환경 만들기 → 활성화 → 설치 → 기록(requirements) → 다른 곳에서 재현

이 한 줄 흐름이 머리에 들어오면, 파이썬 환경 설정은 사실상 끝입니다.

1) Mac: venv 사용법

Step 1. 프로젝트 폴더 만들고 들어가기

mkdir myproj
cd myproj

여기서 중요한 건 “프로젝트 폴더 안에서” 가상환경을 만든다는 점이에요.
그래야 나중에 폴더만 통째로 옮겨도 구조가 자연스럽습니다.

Step 2. 가상환경 만들기(폴더 이름은 보통 .venv)

python3 -m venv .venv

.venv는 관례처럼 많이 쓰는 이름입니다.
숨김 폴더 느낌도 있고(점으로 시작), 프로젝트와 함께 다니기 좋거든요.

Step 3. 가상환경 활성화(들어가기)

source .venv/bin/activate

이제 프롬프트에 (.venv) 같은 표시가 붙으면 성공입니다.

Step 4. pip 업그레이드(가상환경 안에서)

python -m pip install --upgrade pip

가상환경 안으로 진입한 상태에서는 pythonpip를 써도 상관없어요.
가상환경이 PATH 맨 앞에 자기 자신을 올려주기 때문입니다(6편에서 말한 “작은 우주” 컨셉이 여기서 체감됩니다).

Step 5. 패키지 설치(예시)

pip install numpy==1.20.1
pip list

Step 6. 환경 스냅샷 만들기(requirements.txt)

pip freeze > requirements.txt
cat requirements.txt

이 파일이 바로 “내 개발 환경의 레시피”입니다.
요리를 다시 만들 때 레시피가 있으면 재현이 되듯, 파이썬도 똑같아요.

requirements.txt 스냅샵 이미지

Step 7. 비활성화(나오기)

deactivate

2) Windows: venv 사용법 (PowerShell 기준)

Step 1. 프로젝트 폴더 만들고 이동

mkdir myproj
cd myproj

Step 2. 가상환경 생성

py -m venv .venv

Windows는 python3 대신 py를 쓰는 게 깔끔한 경우가 많았죠(2편/5편 흐름).

Step 3. 활성화(들어가기)

PowerShell:

.\.venv\Scripts\Activate.ps1

CMD:

.\.venv\Scripts\activate.bat

PowerShell에서 실행 정책 때문에 막히면
“현재 사용자 범위에서 스크립트 허용”으로 해결되는 경우가 많습니다.
다만 회사/기관 PC는 정책이 다를 수 있으니 보안 규정이 있다면 그 규정 우선!

Step 4. pip 업그레이드

py -m pip install --upgrade pip

Step 5. 패키지 설치(예시)

pip install numpy==1.20.1
pip list

Step 6. requirements.txt 만들기

pip freeze > requirements.txt
type requirements.txt

Step 7. 비활성화

deactivate

3) “재현”이 되는지 직접 실험해보기

파이썬 가상환경의 진짜 가치는 “내 PC에서 되는 것”이 아니라 다른 PC에서도 그대로 되는 것이에요.

실험: 새 폴더에서 레시피(requirements)로 다시 만들기

Mac

mkdir myproj_copy # 프로젝트 폴더 생성
cd myproj_copy # 프로젝트 루트폴더로 이동
python3 -m venv .venv # venv 사용법을 통해 가상환경(.venv) 생성
source .venv/bin/activate # 파이썬 가상환경 활성화 하기
pip install -r ../myproj/requirements.txt # 기존 프로젝트(myproj) 폴더의 리콰이어먼트로 패키지 설치
pip list # 설치된 패키지 확인하기

Windows(PowerShell)

mkdir myproj_copy
cd myproj_copy
py -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r ..\myproj\requirements.txt
pip list

이 실험을 한 번만 해도 머릿속에 이런 감각이 생깁니다.

“파이썬 가상환경 설정이란, 결국 환경을 ‘파일로’ 만들고 그 환경을 재현하는 기술이구나.”

4) 파이썬 가상환경 활용 초보자 함정 3개

함정 1) 가상환경을 켜지 않고 pip 설치했다.

해결: “프롬프트에 (.venv) 표시가 있나?”를 먼저 봅니다.
없으면 활성화부터 하는걸 잊지 마세요!

함정 2) requirements.txt 파일이 없는데 공유하려고 한다.

해결: 항상 이 습관을 “마지막에” 넣으세요.

pip freeze > requirements.txt

함정 3) .venv 폴더를 Git에 올렸다

해결: 대부분의 경우 .venv는 올리지 않습니다.
환경은 레시피(requirements.txt)로 공유하고, 가상환경 폴더는 각자 만들게 하는 게 일반적이에요.

참고. python venv VS virtualevn

python venv VS virtualevn 이미지

venv는 Python 3.3부터 표준 라이브러리에 내장된 가상환경 도구입니다. 별도 설치 없이 python3 -m venv myenv만 치면 바로 사용할 수 있어 초보자나 표준 환경에서 가장 편리합니다. 가벼운 기능에 집중해서 프로젝트별 패키지 격리, requirements.txt 관리 정도만 지원하며, Python 버전 변경이나 복잡한 옵션은 불가능합니다.

virtualenv는 pip install virtualenv 명령어로 설치해야 하는 외부 패키지로, venv보다 10년 앞서 개발된 원조 가상환경 도구입니다. 다양한 Python 버전 지정(virtualenv -p python3.11 myenv), 플랫폼 호환성생성 속도가 더 우수하고 pip 업그레이드 등 확장 기능도 많습니다.

venv가 virtualenv의 핵심만 떼서 만든 ‘경량 버전’이라 볼 수 있어요.

실무적 관점에서는 다음과 같이 구분해서 선택하시면 될꺼예요.

  • 일반 프로젝트 → venv (설치 0, 표준)
  • 다중 Python 버전/복잡 환경 → virtualenv (pip install 후 사용)

macOS Homebrew Python 사용자라면 둘 다 잘 동작하지만, venv부터 시작하는 게 가장 무난합니다!

유사한 게시물