본문 바로가기
Python

[Python] importlib.util.find_spec()

by ds31x 2024. 3. 8.

importlib란?

importlib 는

개발자가 Python에서 패키지 나 모듈을 로드 및 import 하는 작업들에서

다양한 상호작용을 할 수 있도록 지원하는 API를 제공함.

 

이를 사용하여,

동적으로 기존의 import된 모듈을 다시 import하여 갱신하는 등의 처리를 할 수 있음.

(Python Interpreter를 재시작하거나 Python 프로그램을 재시작하지 않고, 동적으로 import 된 module을 관리.

 

https://dsaint31.tistory.com/527

 

[Python] importlib.reload : module 재적재

기본적으로 Python의 module은 최초로 import될 때에만 수행이 됨. 때문에 Python session에서 특정 module을 import 하고 난 이후 해당 moduel에 수정사항이 발생할 경우, 해당 수정사항은 수행 중인 session에 반

dsaint31.tistory.com


importlib.util.find_spec() 이란?

importlib.util.find_spec() 함수는

  • module의 specification에 접근(or 검색)하는 데 사용됨.
  • 현재 시스템에서 해당 moudle이 존재하는지, 어디에 위치하는지 등을 확인하는 데 사용됨.

중요한 점은 대상 module에 대한 실제 import가 일어나지 않는다는 점임.

주로 제공하는 정보는 다음과 같음.

  • module의 존재 유무
  • module의 설치 위치 (__init__.py)

Example

import importlib
import importlib.util
import traceback

# Check if a module exists
module_name = "numpy"


try:
    module_spec = importlib.util.find_spec(module_name)
    print(f"{module_spec.name} module exists.")
    print(f"{module_spec.name} module is located at {module_spec.origin}.")
except Exception as e:
    print(f"{module_name} module does not exist.")
    # traceback.print_exc()