Python/Effective python

[Python] 01. 사용중인 파이썬의 버전을 알자

본 포스팅은 <파이썬 코딩의 기술 (개정 2판)> 책을 공부하고 정리한 내용입니다.


1. 왜 버전을 알아야 하는지?

프로그램 개발자들은 유지 보수를 위해, 프로그램을 버전업한다. 버전 업이 될 때마다 여러 기능이 추가되거나 삭제되기도 한다.

이는 파이썬 버전업에도 동일하게 변화를 겪었다. 특히 파이썬 2에서 3으로 변화할 때 프로그램의 상당 부분이 변경되었다. 파이썬 2는 2020년 1월 1일부로 더 이상 지원되지 않는다.(버그 수정, 보안 패치, 새로운 기능의 역포팅이 이루어지지 않음) 그렇기 때문에 특정 파이썬 2코드는 파이썬 3에서 실행했을 시 에러를 출력하는 경우가 꽤 많다. 파이썬 3을 쓰는 것을 강력히 추천하지만, 2를 써야 하는 경우 2to3이나 six 같은 도구의 도움을 받아 파이썬 3으로 포팅하는 것을 제안한다.

이와 같은 맥락에서, 다른 개발자와 협업할 시, 버전이 다른 프로그램을 쓰는 것은 꼭 피하자. 서로 같은 코드에서 같은 결과물을 얻기 위해서 버전 일치는 매우 기본적인 준비이다. 그렇기 때문에 우리는 requirements.txt에 우리가 본 프로그램을 돌리기 위한 패키지와 패키지의 버전을 모두 리스트 업 하는 것이다.

2. 버전을 알아보는 법

CLI에서 확인하는 법

$python --version  
$python -v
$python3 --version  //python3에서

>>>python3.9.7

보통 --version을 postfix로 붙이면 프로그램의 버전을 알 수 있다. (-V는 되는게 있고 안되는 게 있음)

내장 모듈인 sys를 사용하는 법

import sys
print(sys.version_info)
print(sys.version)

>>>sys.version_info(major=3, minor=11, micro=1, releaselevel='final', serial=0)
>>>'3.11.1 (main, Mar 28 2023, 15:10:40) [Clang 12.0.0 (clang-1200.0.32.28)]'
  • sys.version으로 출력되는 값은 문자열
  • sys.version_info로는 좀 더 디테일하게 버전을 구분할 수 있음 -> version_info는 named tuple로서 major, minor, micro에 접근 가능
import sys

sys.version_info.major
sys.version_info.minor
sys.version_info.micro

3
9
7

더보기

정리

  • 파이썬에는 CPython, Jython, PyPy 같은 다양한 런타임이 존재한다.
  • 같은 프로그램에서는 같은 버전을 사용하는게 매우 중요하다.
  • 파이썬 3을 강력 권장한다. 2는 수명이 다했기 때문이다.