파이썬 스크립트에서 최소 버전 강제하기: sys.version_info 활용법
사용자가 호환되지 않는 파이썬 버전으로 스크립트를 실행하는 것을 방지하려면 진입점에서 버전 체크를 추가하세요. sys.version_info는 메이저, 마이너, 마이크로 버전을 튜플로 제공하므로 비교가 직관적입니다.
버전 체크 패턴
import sys
# 파이썬 2.7 이하 차단
if not sys.version_info > (2, 7):
sys.exit("이 스크립트는 파이썬 2.7 초과 버전이 필요합니다. (파이썬 3 권장)")
# 파이썬 3.5 미만 차단 (3.5 기능 사용 시)
elif not sys.version_info >= (3, 5):
sys.exit("이 스크립트는 파이썬 3.5 이상이 필요합니다. (타입 힌트, async/await 등 사용)")
# 정상 실행
print(f"실행 중인 파이썬 버전: {sys.version}")
튜플 비교의 장점
(3, 5) > (3, 4) → True (자연스러운 버전 비교)
- 문자열 파싱 불필요, 메이저/마이너/마이크로 모두 한 번에 비교
실무 권장사항
- 스크립트 최상단에 배치하여 조기 종료(fail fast) 유도
- 에러 메시지에 필요한 최소 버전과 설치 가이드 링크 포함
python_requires를 setup.py/pyproject.toml에도 명시하여 패키지 설치 단계에서 차단
더 정교한 체크가 필요할 때
import sys
from packaging import version
# 패키징 라이브러리로 복잡한 버전 제약 처리
required = ">=3.8, <3.13"
current = version.parse(".".join(map(str, sys.version_info[:3])))
if not version.parse(required).contains(current):
sys.exit(f"지원 버전: {required}, 현재: {current}")
packaging은 pip 의존성으로 이미 설치되어 있어 별도 설치 없이 사용 가능합니다.