1.4 <Win> 파이썬 가상환경 이해

1. 파이썬 가상환경 개요
A. 파이썬(Python)이란 무엇인가?
파이썬은 1991년 Guido van Rossum이 개발한 “쉽게 읽히고, 쉽게 쓰이며, 쉽게 유지보수할 수 있는 언어” 입니다.
B. 파이썬의 버전 체계와 호환성 문제
프로그래밍 언어의 호환성
1. "개발 환경 설정", 그리고 개발자더보기A. "개발 환경 설정"을 이루는 13개 분야: S/W 개발에 필요한 체크사항들프로그래밍 언어/ 런타임(실행)패키지 관리가상환경IDE/에디터빌드/실행 환경프로
basiclike.tistory.com
C. 가상환경의 필요성
가상환경(Vertual environment)이란 무엇인가?
파이썬의프로젝트별 독립 환경 구현 방법
파이썬은 버전·패키지 호환성이 강한 언어가 아닙니다.
프로젝트마다 사용하는 라이브러리 버전이 다르고, Python 버전 호환성도 일정하지 않기 때문에
프로젝트별 독립 환경을 만드는 것이 필수적입니다.

2. 환경변수 설정의 의미
A. 환경변수란 무엇인가?
환경변수(Environment Variable)는 Windows, macOS, Linux, 모두에서 사용되며
운영체제 관점에서 프로그램 실행해야 할 때,
“어디에 어떤 프로그램이 있는지” 참고하도록 저장해 두는 전역적 설정값 입니다.
B. 환경 변수 설정 방법
환경 변수 설정
0. 환경변수(Environment Variable)란 무엇인가?더보기환경변수(Environment Variable)는Windows, macOS, Linux, 모두에서 사용되며운영체제 관점에서 프로그램 실행해야 할 때“어디에 어떤 프로그램이 있는지”
basiclike.tistory.com
C. 프로그램 실행 예시


위 실행 예시에서, python 이라는 프로그램을 실행시키기 위해
운영체제는 환경변수에 등록되어 있는 python 실행 경로를 참조하여, python 프로그램을 실행시키고
--version 옵션을 사용하여, 결과값을 출력합니다.
D. 파이썬과 환경변수 주의 사항

파이썬은 여러 버전의 파이썬을 설치할 수 있습니다.
현제 파이썬 3.14, 3.9, 3.11 버전이 동시에 설치되어 있습니다.
이 때, 실행되는 파이썬은 환경변수에 의해 결정됩니다..
E. (윈도우) 환경변수 확인

모든 운영체제에는 환경변수 설정하는 방법이 존재합니다.
개발자라면 기본적으로 숙지해야 하는 개념과 기능입니다.
F. 환경변수 우선순위 변경


환경변수의 우선순위에 따라서,
where python, python --version 명령어의 결과가 달라짐을 확인할 수 있습니다.
G. 환경변수를 사용하지 않은, 프로그램 실행 방법

3. 가상환경 구현
: python 3.11 기준으로 진행합니다.
A. 테스트 경로 생성
A.1 터미널을 실행하고, 아래 명령어를 입력합니다.


mkdir C:\Dev\Python\
cd C:\Dev\Python\
(파일 탐색기를 이용해, 해당 경로에 생성된 실제 폴더를 확인합니다.)
B. 가상환경을 생성하는 아래 명령어를 입력합니다.

python -m venv test_venv
현재 실행한 python(또는 python3)을 복사/연결해서,
my_venv 📁폴더 안에 독립된 Python + 라이브러리 설치 공간을 만듭니다.
C.파일 탐색기를 이용해, 생성된 실제 폴더를 확인합니다.

D. 가상환경 활성화

.\test_venv\Scripts\Activate
프롬프트 앞에 (가상환경 이름) 표시가 붙으면 활성화된 것입니다.
E. 가상환경 비활성화

deactivate
4. 파일 경로 기준으로, 파이썬 전역환경과 가상환경 비교
PySide6 설치 (pip)
1. pip 업그레이드python.exe -m pip install --upgrade pip 2. pyside6 설치python.exe -m pip install pyside6
basiclike.tistory.com
B. Python / pip 실행 파일 경로
| 구분 |
Windows 예시 |
| 전역 Python | C:\Users\사용자명\AppData\Local\Programs\Python\Python311\python.exe |
| 전역 pip | C:\Users\사용자명\AppData\Local\Programs\Python\Python311\Scripts\pip.exe |
| 가상환경 Python | 프로젝트경로\가상환경이름\Scripts\python.exe |
| 가상환경 pip | 프로젝트경로\가상환경이름 \Scripts\pip.exe |
C. 패키지 설치 위치(site-packages)
| 구분 |
패키지 설치 경로 예시 |
| 전역 환경 | C:\Users\사용자명\AppData\Local\Programs\Python\Python311\Lib\site-packages\/usr/lib/python3.x/site-packages/ |
| 가상환경 | 프로젝트경로\가상환경이름 \Lib\site-packages |

패키지는 가상환경 test_venv의 site-packages에만 설치
전역 Python에는 아무 영향 없음
5. 가상환경 생성과 패키지 버전(pip 및 모든 패키지)
1. 파이썬 가상환경(venv)은 전역 패키지를 복사하지 않습니다.
패키지 버전은 전역 환경과 완전히 독립적으로 관리됩니다.
2. 파이썬 가상환경을 생성해도 전역 python 패키지(특히 pip)는 복사되지 않습니다.
venv 생성 시 pip는 "전역 pip를 그대로 복사하는 것이 아니라
파이썬에 내장된 ensurepip 모듈이 제공하는 pip 버전을 기준으로 초기화 합니다.
ensurepip는 파이썬 설치 시 포함된 pip 버전을 압축 상태로 가지고 있습니다.
따라서, venv를 생성할 때 설치되는 pip 버전은:
- 전역 pip를 보는 것이 아니라
- ensurepip에 저장된 pip 버전을 기준으로 설치됩니다.
6. 명령어 기준으로, 파이썬 전역환경과 가상환경 비교
A. python 명령의 해석
A.1 python 명령의 해석
> python main.py
# 전역 python.exe가 main.py 실행
A.2 가상환경 활성화 후
(my_venv) > python main.py
# → my_venv\Scripts\python.exe가 main.py 실행
B. pip install 의 대상
B.1 전역 환경
> pip install requests
# 전역 site-packages에 설치
A.2 가상환경 활성화 후
(my_venv) > pip install requests
# my_venv 전용 site-packages에만 설치
7. 가상환경 정리
전역 환경은 “하나의 Python이 모든 프로젝트를 공유”하는 구조이고,
가상환경은 “프로젝트마다 자신만의 Python + 패키지 집합을 가지는 구조”입니다.
그래서 버전 충돌·의존성 문제를 피하려면, 프로젝트마다 가상환경을 만드는 것이 권장됩니다.