글 작성자: BasicLike

1. 왜 Python은 가상환경이 필요할까?

더보기

A. Python 개발은 버전과 패키지 호환성 관리가 중요한 언어입니다.

 

Python은 다른 언어들에 비해 버전과 패키지 호환성 문제를 자주 겪는 편입니다.

같은 코드라도 Python 버전, 설치된 라이브러리 버전, 실행 환경에 따라 동작 결과가 달라질 수 있습니다.

그래서 Python 개발에서는 프로젝트마다 독립된 실행 환경을 만드는 것이 사실상 필수입니다.

 

 

 

 

B. Python 버전과 호환성 문제

 

프로그래밍 언어의 호환성

1. "개발 환경 설정", 그리고 개발자더보기A. "개발 환경 설정"을 이루는 13개 분야: S/W 개발에 필요한 체크사항들프로그래밍 언어/ 런타임(실행)패키지 관리가상환경IDE/에디터빌드/실행 환경프로

basiclike.tistory.com

 

 

 

 

C. 가상환경이 필요한 이유

가상환경(Virtual Environment)이란,
프로젝트마다 독립된 Python 실행 환경과 패키지 설치 공간을 만드는 방법입니다.

 

프로젝트마다 사용하는 라이브러리 버전이 다르고,

Python 버전 호환성도 일정하지 않기 때문에 프로젝트별 독립 환경이 필요합니다.

즉, Python은 전역 환경 하나로 모든 프로젝트를 처리하기보다, 프로젝트마다 별도의 환경을 만드는 방식이 더 안전합니다.

 


 

2. Windows에서 python 명령은 어떻게 실행될까?

더보기

A. 환경변수란 무엇인가?

 

환경변수(Environment Variable)는 Windows, macOS, Linux 같은 운영체제에서 공통으로 사용하는 설정값입니다.

운영체제는 프로그램을 실행할 때, 환경변수에 저장된 정보를 참고해 어떤 실행 파일을 먼저 찾을지 결정합니다.

특히 PATH 환경변수에는 자주 사용하는 프로그램의 경로가 등록되어 있어, 사용자가 전체 경로를 입력하지 않아도 명령어만으로 프로그램을 실행할 수 있습니다.

 

 

 

 

B. [Windows] 환경 변수 설정 방법

 

환경 변수 설정

0. 환경변수(Environment Variable)란 무엇인가?더보기환경변수(Environment Variable)는Windows, macOS, Linux, 모두에서 사용되며운영체제 관점에서 프로그램 실행해야 할 때“어디에 어떤 프로그램이 있는지”

basiclike.tistory.com

 

 

 

 

C. 일반적인 프로그램 실행의 의미

위 예시에서 사용자가 python --version을 입력하면,

운영체제는 PATH에 등록된 경로를 참고해 Python 실행 파일을 찾고, 그 프로그램에 --version 옵션을 전달합니다.

실행되는 파이썬도 마찬가지 입니다. 3.11.9 버전의 파이썬을 실행합니다.

 

 

 

 

D. Python과 환경변수의 관계

하나의 Windows PC에는 여러 버전의 Python이 동시에 설치될 수 있습니다.

예를 들어 Python 3.9, 3.11, 3.14가 함께 설치되어 있어도 이상하지 않습니다.

이때 터미널에서 실행되는 Python은 PATH 환경변수의 우선순위에 따라 달라질 수 있습니다.

 

 

 

 

E. (Windows) 환경변수 확인

모든 운영체제에는 환경변수를 설정하는 방법이 존재합니다.

개발자라면 기본적으로 숙지해야 하는 개념과 기능입니다.

 

 

 

 

F. 환경변수 우선순위 변경

환경변수의 우선순위에 따라 where python, python --version 결과가 달라질 수 있습니다.

 

 

 

 

G. 환경변수를 사용하지 않고 프로그램 실행하기

환경변수를 설정하지 않고, 프로그램의 전체 경로와 실행파일(.exe)명을 입력하면, 해당 프로그램을 실행 할 수 있습니다.
이렇게 바로가기 처럼, 전체 경로를 대신하여 간단하게 사용하고 컴퓨터가 호출 할 수 있는 환경을 설정하는 것을 시스템 환경변수 설정입니다.

 

3. 가상환경 생성과 활성화

: Python 3.11 기준으로 진행합니다.

더보기

A. 테스트 경로 생성

 

터미널을 실행하고, 아래 명령어를 입력합니다.

mkdir C:\Dev\Python\
cd C:\Dev\Python\

(파일 탐색기를 이용해 해당 경로에 생성된 실제 폴더를 확인합니다.)

 

 

 

 

B. 가상환경 생성

python -m venv test_venv

⑧을 실행하면 현재 실행 중인 Python 버전을 기준으로, test_venv 폴더 안에 독립된 Python 실행 환경과 패키지 설치 공간을 만듭니다.

 

 

 

 

C. 파일 탐색기로 생성된 폴더 확인

 

 

 

 

D. 가상환경 활성화

.\test_venv\Scripts\Activate

가상환경을 활성화하면,

현재 터미널은 전역 Python 대신 test_venv 내부의 python.exe와 pip.exe를 우선적으로 사용합니다.

프롬프트 앞에 (test_venv) 표시가 붙으면 정상적으로 활성화된 상태입니다.

 

 

 

 

E. 가상환경 비활성화

deactivate

deactivate 명령을 입력하면 가상환경이 비활성화되고, 다시 전역 Python 기준으로 돌아갑니다.


 

4. 전역 환경과 가상환경 한눈에 비교

더보기

A. PySide6 설치 예시

 

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 프로젝트경로\test_venv\Scripts\python.exe
가상환경 pip 프로젝트경로\test_venv\Scripts\pip.exe

 

 

 

 

C. 패키지 설치 위치(site-packages)

구분 패키지 설치 경로 예시
전역 환경 C:\Users\사용자명\AppData\Local\Programs\Python\Python311\Lib\site-packages
가상환경 프로젝트경로\test_venv\Lib\site-packages

패키지는 가상환경 test_venvsite-packages에만 설치됩니다.

전역 Python에는 영향을 주지 않습니다.

 

 

 

 

D. 명령어 기준으로 비교

 

전역 환경에서는 아래 명령이 전역 Python을 사용합니다.

> python main.py
# 전역 python.exe가 main.py 실행

 

 

가상환경 활성화 후에는 같은 명령이 가상환경 내부 Python을 사용합니다.

(test_venv) > python main.py
# test_venv\Scripts\python.exe가 main.py 실행

 

 

패키지 설치 명령도 마찬가지입니다.

> pip install requests
# 전역 site-packages에 설치
(test_venv) > pip install requests
# test_venv 전용 site-packages에만 설치

 

 

 

 

E. pip와 가상환경 생성 시점

 

Python 가상환경(venv)은 전역 패키지를 복사하지 않습니다.

패키지 버전은 전역 환경과 완전히 독립적으로 관리됩니다.

또한 venv를 생성할 때 설치되는 pip는 전역 pip를 그대로 복사하는 것이 아니라,

Python에 포함된 ensurepip 기준으로 초기화됩니다.

 

즉, 가상환경은 전역 환경과 분리된 독립 생태계를 만드는 것이 핵심입니다.


 

5. 정리

더보기
초보자 기준 권장 습관
- Python 설치 자체는 전역 환경에 1회 진행
- 실제 프로젝트 작업은 프로젝트마다 별도의 가상환경에서 진행
- 패키지 설치는 가상환경 안에서만 진행
- 프로젝트 공유 시에는 requirements.txt로 버전 정보를 함께 관리

 

전역 환경은 하나의 Python과 패키지를 여러 프로젝트가 함께 공유하는 구조입니다.

반면 가상환경은 프로젝트마다 독립된 Python 실행 환경과 패키지 집합을 따로 관리하는 구조입니다.

 

Python은 버전과 패키지 호환성 문제가 자주 발생할 수 있기 때문에,

Windows에서도 프로젝트마다 가상환경을 만들어 사용하는 습관이 기본입니다.

 

여기에 requirements.txt처럼 패키지 버전을 함께 기록하면,

다른 PC나 다른 개발자 환경에서도 동일한 프로젝트 환경을 재현하기 쉬워집니다.

 

즉, Python 개발에서는 가상환경(Virtual Environment)패키지 관리(requirements.txt 등)를 함께 사용하는 것이

기본적인 개발 습관입니다.