Programming,  Python

[Python] 다른 Python Source의 모듈 가져오기

Python을 사용하다보면 PYTHONPATH에 있는 package가 아닌 다른 python source의 module을 가져와서 사용하는 경우가 종종 있다. 위 기능을 지원하는 패키지를 통해 동작을 구현해보려고 한다.
참고로 Python version별로 사용 방법이 다르기 때문에 유의해야하며, 이 글은 Python version 3.8 기준으로 작성했다.

# main.py
import importlib
import os 
          
def importModule (_name, _path):
    fname = _path + "/" + _name + ".py"
    try:  
        loader = importlib.machinery.SourceFileLoader(_name, fname)
        module = loader.load_module()
        module.checkSanity()
    except Exception:
        print("[Debug] Exception occurs")
          
if __name__ == "__main__":
    print("-------- Run sourceFileLoader ----------")
    importModule("test", os.getcwd())
# test.py
def checkSanity():
    print("This is test module")
$ python main.py 
 -------- Run sourceFileLoader ----------
 This is test module

Reference

  1. https://stackoverflow.com/questions/19009932/import-arbitrary-python-source-file-python-3-3

Leave a Reply

Your email address will not be published. Required fields are marked *