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을 사용하려면:
- File → Settings → Project → Python Interpreter
- 우측 톱니바퀴 → Add Interpreter → Add Local Interpreter
- System Interpreter 선택
- C:/Program Files/Python313/python.exe 선택
- 이후 PyCharm에서 패키지 설치 시 시스템에 설치됨
실무 권장사항
시스템 Python 사용이 적합한 경우
- 소규모 테스트 프로젝트
- 회사 내부 프로젝트들이 비슷한 환경 사용
- 디스크 공간이 부족한 경우
가상환경(venv) 사용이 필수인 경우
- 외부 배포용 프로젝트
- 패키지 버전이 프로젝트마다 다른 경우
- requirements.txt로 환경 재현이 필요한 경우
절충안
옵션 1: 공통 라이브러리는 시스템에, 특수 패키지만 venv에
시스템: PyQt5, pandas, numpy (공통 패키지)
venv: 프로젝트별 특수 라이브러리만
옵션 2: 일단 시스템 Python으로 시작
- 버전 충돌이 생기면 그때 venv로 분리
- 실용적인 접근 방식
결론
- 디스크 여유 있음 → 가상환경 사용 (안전성 우선)
- 디스크 부족 → 시스템 Python 사용 후 필요시 venv 분리
- 프로젝트 5~10개 → 중복 설치로 약 2~3GB 사용 (감수할 만함)
개발 환경의 안정성을 위해서는 가상환경이 권장되지만, 상황에 맞게 유연하게 선택하는 것이 중요합니다.
참고:
- Python 공식 문서: venv — Creation of virtual environments
- PyCharm 가상환경 설정 가이드
'#1프로그래밍 > #1-1파이썬' 카테고리의 다른 글
| [Python, QT, QtableWidget] QTableWidget 레코드 추가/삭제 (0) | 2022.11.15 |
|---|---|
| [Python] QT Designer UI 배포 순서 정리 (0) | 2022.11.01 |
| [Python]QT Desinger UI에 이벤트 연결 (0) | 2022.11.01 |
| [Python, 반복문] Python에서 for문 index 특징 (0) | 2022.07.22 |
| [python, 리스트 함수] python list 데이터 추가 및 삭제 함수 (0) | 2022.07.20 |