Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

런타임에 Python 모듈 버전을 확인하는 방법

Python 코드 실행 중에 설치된 모듈(패키지)의 버전을 확인하려면 pkg_resources 모듈을 사용하면 됩니다. pkg_resources는 setuptools에 포함되어 있으며, PyPI에서 설치한 패키지라면 최소한 버전 번호를 가지고 있기 때문에 대부분의 경우 이 방법으로 버전 정보를 얻을 수 있습니다.

pkg_resources로 버전 확인하기

다음과 같이 get_distribution() 함수에 패키지 이름을 전달하고 .version 속성에 접근하면 됩니다.

>>> import pkg_resources
>>> pkg_resources.get_distribution("blogofile").version
'0.7.1'

주의사항: PyPI 등록 이름을 사용해야 합니다

여기서 중요한 점은 패키지 이름이 반드시 PyPI에 등록된 배포 이름이어야 한다는 것입니다. 실제 임포트할 때 사용하는 모듈 이름과 PyPI 패키지 이름이 다른 경우가 많기 때문입니다.

예를 들어 MySQL 데이터베이스 드라이버의 경우, 코드에서는 MySQLdb라는 이름으로 임포트하지만 PyPI에는 mysql-python으로 등록되어 있습니다. 따라서 다음과 같이 작성해야 합니다.

  • 작동하지 않음: pkg_resources.get_distribution('MySQLdb').version
  • 정상 작동: pkg_resources.get_distribution('mysql-python').version

참고: Python 3.8 이상에서는 importlib.metadata 권장

pkg_resources는 레거시 인터페이스로 간주되며, Python 3.8부터는 표준 라이브러리의 importlib.metadata를 사용하는 것이 권장됩니다. 별도의 외부 의존성 없이 동일한 기능을 제공합니다.

>>> from importlib.metadata import version
>>> version("blogofile")
'0.7.1'

새 프로젝트라면 importlib.metadata.version()을 우선적으로 고려하고, 구버전 Python 호환성이 필요한 경우에만 pkg_resources를 사용하는 것이 좋습니다.