[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