[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
- https://stackoverflow.com/questions/19009932/import-arbitrary-python-source-file-python-3-3