파이썬(Python) 버전 확인 방법, 터미널과 코드에서 직접 해 보니
맥 한 대에서 파이썬 버전 확인 명령을 차례로 한 번씩 실행했습니다. 기본으로 불린 것은 3.15.0이었지만 시스템 쪽에는 3.9.6이 따로 있었습니다. 어떤 파이썬이 실행되는지, 패키지 도구와 가상환경은 어느 버전에 붙는지 확인하는 순서를 담았습니다.
Finn ·

Homebrew로 파이썬을 설치한 맥에서 python3 --version을 실행하면 Python 3.15.0이 나옵니다. 그런데 같은 맥의 /usr/bin/python3는 Python 3.9.6이었고, python이라는 이름은 아예 찾을 수 없다고 나왔어요. 그래서 파이썬 버전 확인은 숫자 하나만 보고 끝낼 일이 아니고, 지금 실행되는 파이썬이 어느 것인지까지 봐야 합니다.
따라 할 순서 한눈에 보기
AI 코딩 도구에 터미널 작업을 맡기고 있다면 도구가 부르는 python3가 어느 것인지 먼저 알아 두는 편이 좋습니다. 아래 순서대로 실행하면 버전과 경로를 한 번에 확인할 수 있어요.
python3 --version(또는python3 -V)으로 버전 보기python --version도 되는지 확인하기which -a python3로 실행될 수 있는 파이썬 경로 모두 보기- 경로마다 버전을 찍어 비교하기
- 코드 안에서
sys.version,sys.version_info,platform.python_version()출력하기 sys.version_info로 버전에 따라 코드 나누기python3 -m pip --version으로 pip가 붙은 파이썬 보기python3 -m venv .venv로 가상환경을 만들고 그 안의 버전 보기
같은 맥에도 파이썬이 여러 개 있을 수 있어서, 3~4단계에서 어떤 것이 실행되는지까지 확인했습니다. 단계별 명령과 출력은 아래 절에서 차례대로 보여 드릴게요.

함께 읽을 글
터미널에서 버전을 보는 가장 짧은 명령
먼저 터미널에서 두 가지 옵션을 이어서 실행했습니다. 둘 다 같은 줄을 출력하고 종료 코드는 0이었어요.
$ python3 --version && python3 -V
Python 3.15.0
Python 3.15.0명령 줄과 환경 문서를 보면 -V와 --version은 같은 옵션이고, 파이썬 버전 번호를 출력한 뒤 바로 종료합니다. 두 번 지정하면(-VV) 빌드에 관한 추가 정보까지 출력하는데, 이 옵션은 3.6 버전에서 추가됐습니다. 다만 -VV는 이번에 실행하지 않았습니다.
맥에서 명령을 찾을 수 없다고 나올 때
그렇다면 3을 빼고 python으로 불러도 될까요? 이 맥에서는 되지 않았습니다. 종료 코드는 127이었고 셸이 아래 메시지를 냈습니다.
$ python --version
zsh:2: command not found: pythonAI가 만든 스크립트나 README에 python ...이라고 적혀 있다면 이 맥에서는 그대로 실패한다는 뜻이죠. 이럴 때는 명령을 python3로 바꿔 실행하거나, 뒤에서 만들 가상환경 안의 .venv/bin/python을 쓰면 됩니다.
지금 실행되는 파이썬은 어느 것일까요?
which -a는 같은 이름으로 실행될 수 있는 파일을 모두 보여 줍니다. 이 맥에서는 두 줄이 나왔어요.
$ which -a python3
/opt/homebrew/bin/python3
/usr/bin/python3경로마다 버전이 같을까요? 반복문으로 각 경로에 --version을 붙여 실행해 봤습니다. awk 부분은 같은 경로가 두 번 나오면 한 번만 남기는 역할입니다.
$ for p in $(which -a python3 | awk '!seen[$0]++'); do echo "$p → $($p --version)"; done
/opt/homebrew/bin/python3 → Python 3.15.0
/usr/bin/python3 → Python 3.9.61단계에서 나온 3.15.0은 첫 줄의 Homebrew 쪽 버전과 같습니다. 3.9.6짜리 시스템 파이썬은 경로를 직접 적어야 실행된 셈이에요.

코드 안에서 버전을 확인하는 방법
이번에는 터미널 옵션 대신 코드에서 버전을 읽어 봤습니다. python3 - 뒤에 코드를 표준 입력으로 넣는 방식인데, 문서에 따르면 -는 표준 입력(sys.stdin)에서 명령을 읽습니다.
$ python3 - <<'PY'
import sys, platform
print(sys.version)
print(sys.version_info)
print(platform.python_version())
PY
3.15.0 (main, Oct 9 2026, 11:16:41) [Clang 21.0.0 (clang-2100.3.34.2)]
sys.version_info(major=3, minor=15, micro=0, releaselevel='final', serial=0)
3.15.0세 값의 쓰임은 출력 모양이 말해 줍니다. sys.version은 빌드 날짜와 컴파일러까지 담은 긴 글자이고, sys.version_info는 major, minor처럼 나뉜 값이에요. 버전 숫자만 짧게 남기고 싶을 때는 platform.python_version()이 편합니다.
버전에 따라 코드를 나누는 방법
예를 들어 배포 서버와 노트북의 파이썬이 다르다면 어떻게 할까요? sys.version_info를 튜플과 비교하면 됩니다.
$ python3 - <<'PY'
import sys
if sys.version_info >= (3, 10):
print("3.10 이상: match 문을 쓸 수 있음")
else:
print("3.10 미만")
PY
3.10 이상: match 문을 쓸 수 있음3.15.0에서 실행했으니 첫 번째 분기로 들어갔습니다. 코드 조건대로라면 같은 코드를 /usr/bin/python3(3.9.6)로 돌렸을 때는 3.10 미만 쪽으로 가겠죠. 다만 이 예제는 실행 중인 버전을 판별할 뿐, 최신 문법 때문에 생기는 구문 오류를 막아 주지는 못합니다. 파이썬 설정 및 사용법에 따르면 비대화형 모드에서는 실행하기 전에 전체 입력을 구문 분석합니다. 그래서 지원하지 않는 문법이 같은 파일에 있으면 이 검사 분기까지 가지 못하고 구문 오류로 멈출 수 있습니다. 최신 문법이 필요한 코드라면 버전 검사에 기대기보다 그 문법을 지원하는 버전의 인터프리터로 실행하는 편이 좋습니다.
패키지 설치 도구는 어느 파이썬에 붙어 있을까요?
파이썬이 여러 개면 패키지도 엉뚱한 곳에 설치될 수 있습니다. 그래서 pip를 단독으로 부르기보다 python3 -m pip로 확인했어요. 이 단계는 0.2초가 걸렸습니다.
$ python3 -m pip --version
pip 26.2.2 from /opt/homebrew/lib/python3.15/site-packages/pip (python 3.15)문서에 따르면 -m은 표준 임포트 방식으로 모듈을 찾아 __main__ 모듈로 실행합니다. 지금 부른 python3에 딸린 pip가 실행되는 것이죠. 출력 끝의 (python 3.15)와 경로의 /opt/homebrew를 보면, 이 pip는 Homebrew 쪽 3.15에 붙어 있습니다.
가상환경 안에서 버전 확인하기
마지막으로 프로젝트 폴더에 가상환경을 만들고 그 안의 파이썬을 확인했습니다. 만들고 확인하기까지 1.1초가 걸렸어요.
$ python3 -m venv .venv && .venv/bin/python --version && .venv/bin/python -c 'import sys; print(sys.prefix != sys.base_prefix)'
Python 3.15.0
True가상환경 버전은 만들 때 쓴 python3와 같은 3.15.0이었습니다. 그런데 두 번째 줄의 True는 무슨 뜻일까요? sys 모듈 문서에 따르면 가상환경에서는 sys.prefix가 가상환경 경로로 바뀌고, sys.base_prefix는 바뀌지 않고 원래 설치를 가리킵니다. 두 값이 다르니 지금 가상환경 안에서 실행 중이라는 뜻이에요.

문서는 3.14부터 가상환경에서 sys.prefix와 sys.exec_prefix가 경로 초기화 단계에서 정해진다고도 설명합니다. 실행 파일의 절대 경로가 궁금하다면 같은 문서의 sys.executable을 출력해 보는 방법도 있습니다(이번 실행에는 넣지 않았습니다).
자주 하는 실수와 점검 목록
앞의 출력에서 나온 함정을 모으면 이렇습니다.
python으로 부르기: 이 맥에서는 종료 코드 127과command not found가 나왔습니다.- 버전만 보고 경로를 안 보기: 같은
python3라는 이름 아래 3.15.0과 3.9.6이 함께 있었습니다. - pip를 따로 확인하지 않기:
python3 -m pip --version의 경로와 괄호 속 버전까지 봐야 합니다. - 가상환경을 만들고 바깥 파이썬으로 실행하기:
.venv/bin/python을 직접 부르거나sys.prefix != sys.base_prefix로 확인하세요.
AI 에이전트에게 설치나 실행을 맡기기 전에 아래 항목을 점검해 보세요.
python3 --version결과가 프로젝트에 필요한 버전인가which -a python3의 첫 줄이 의도한 설치 경로인가- pip 출력의 경로가 같은 파이썬을 가리키는가
- 가상환경 안에서
True가 나오는가
측정 조건과 한계
이 기록은 2026-10-27에 darwin arm64 맥 한 대에서 남긴 것입니다. 새 임시 폴더에서 명령을 적힌 차례대로 한 번씩만 실행했고, Homebrew로 설치돼 있던 python3를 썼습니다. 윈도우나 리눅스, 다른 설치 방식에서는 경로와 메시지가 다를 수 있어요.
걸린 시간은 1~6단계가 각각 0.0초, pip 확인이 0.2초, 가상환경 단계가 1.1초였습니다. 한 번씩만 잰 값이라 이 측정만으로는 차이의 원인을 가를 수 없습니다. 자기 맥에서 궁금하다면 같은 명령 앞에 time을 붙여 여러 번 실행해 비교해 보세요.

참고 자료
- 1. 명령 줄과 환경 docs.python.org
- sys — 시스템 특정 파라미터와 함수 docs.python.org