#1프로그래밍/#1-1파이썬

Python 인터프리터 이해하기: 시스템 Python vs 가상환경(venv)

HopeDeveloper 2026. 3. 13. 17:19

Python 인터프리터 이해하기: 시스템 Python vs 가상환경(venv)

문제 상황

PyCharm에서 프로젝트를 진행하다 보면 인터프리터 설정에서 다음과 같은 경로들을 보게 됩니다:

C:/Program Files/Python313/python.exe
C:/Users/YourName/PyCharmMiscProject/.venv/Scripts/python.exe

이 두 가지의 차이는 무엇이고, 어떤 것을 사용해야 할까요?

Python 인터프리터의 두 가지 유형

1. 시스템 전역 Python

경로: C:/Program Files/Python313/python.exe

  • Windows 전체에서 사용되는 기본 Python 설치
  • 모든 프로젝트가 공유하는 패키지 저장소
  • pip install 시 C:/Program Files/Python313/Lib/site-packages/에 설치
  • 관리자 권한이 필요할 수 있음

2. 프로젝트 전용 가상 환경 (venv)

경로: C:/Users/[사용자]/[프로젝트]/.venv/Scripts/python.exe

  • 특정 프로젝트만의 독립된 Python 환경
  • 프로젝트별로 다른 버전의 패키지 사용 가능
  • pip install 시 .venv/Lib/site-packages/에만 설치
  • 다른 프로젝트와 의존성 충돌 방지

패키지 중복 설치 문제

가상 환경을 사용하면 각 환경마다 패키지가 중복으로 설치됩니다.

실제 예시

C:/Program Files/Python313/
└── Lib/site-packages/
    ├── numpy/         (30MB)
    ├── pandas/        (50MB)
    └── PyQt5/         (100MB)

C:/Users/YourName/ProjectA/.venv/
└── Lib/site-packages/
    ├── numpy/         (30MB) ← 중복!
    ├── pandas/        (50MB) ← 중복!
    └── PyQt5/         (100MB) ← 중복!

C:/Users/YourName/ProjectB/.venv/
└── Lib/site-packages/
    ├── numpy/         (30MB) ← 또 중복!
    └── PyQt5/         (100MB) ← 또 중복!

프로젝트가 3개라면 PyQt5만 300MB씩 3번 설치되어 약 900MB를 차지합니다.

왜 이렇게 설계되었나?

완벽한 격리를 위해서입니다:

# 프로젝트 A: 버그 수정 전 버전 필요
numpy==1.24.0

# 프로젝트 B: 최신 기능 사용
numpy==1.26.0

이런 상황에서 패키지를 공유하면 버전 충돌이 발생합니다.

시스템 Python에 requirements.txt 설치하기

디스크 공간을 절약하고 싶다면 시스템 Python을 사용할 수 있습니다.

PowerShell에서 설치 시 주의사항

❌ 잘못된 방법 (오류 발생)

"C:/Program Files/Python313/python.exe" -m pip install -r requirements.txt

오류 메시지:

식 또는 문에서 예기치 않은 '-m' 토큰입니다.

✅ 올바른 방법 (& 연산자 사용)

& "C:/Program Files/Python313/python.exe" -m pip install -r requirements.txt

왜 & 연산자가 필요한가?

  • PowerShell: 따옴표로 묶으면 "문자열"로 인식 → & 필요
  • CMD: 따옴표로 묶어도 실행 가능

다른 설치 방법들

방법 1: CMD 사용

"C:/Program Files/Python313/python.exe" -m pip install -r requirements.txt

방법 2: Python이 PATH에 등록되어 있다면

python -m pip install -r requirements.txt

방법 3: py launcher 사용 (Windows 추천)

py -3.13 -m pip install -r requirements.txt

PyCharm에서 인터프리터 변경하기

시스템 Python을 사용하려면:

  1. File → Settings → Project → Python Interpreter
  2. 우측 톱니바퀴 → Add Interpreter → Add Local Interpreter
  3. System Interpreter 선택
  4. C:/Program Files/Python313/python.exe 선택
  5. 이후 PyCharm에서 패키지 설치 시 시스템에 설치됨

실무 권장사항

시스템 Python 사용이 적합한 경우

  • 소규모 테스트 프로젝트
  • 회사 내부 프로젝트들이 비슷한 환경 사용
  • 디스크 공간이 부족한 경우

가상환경(venv) 사용이 필수인 경우

  • 외부 배포용 프로젝트
  • 패키지 버전이 프로젝트마다 다른 경우
  • requirements.txt로 환경 재현이 필요한 경우

절충안

옵션 1: 공통 라이브러리는 시스템에, 특수 패키지만 venv에

시스템: PyQt5, pandas, numpy (공통 패키지)
venv: 프로젝트별 특수 라이브러리만

옵션 2: 일단 시스템 Python으로 시작

  • 버전 충돌이 생기면 그때 venv로 분리
  • 실용적인 접근 방식

결론

  • 디스크 여유 있음 → 가상환경 사용 (안전성 우선)
  • 디스크 부족 → 시스템 Python 사용 후 필요시 venv 분리
  • 프로젝트 5~10개 → 중복 설치로 약 2~3GB 사용 (감수할 만함)

개발 환경의 안정성을 위해서는 가상환경이 권장되지만, 상황에 맞게 유연하게 선택하는 것이 중요합니다.


참고: