메인 모듈의 경로

riassuc·2021년 5월 16일
0
└─ main.py
└─ calculator
    ├── add_and_multiply.py
    └── multiplication

이런 구조로 간단한 계산을 하는 파일을 만들었는데 main.py에서 상대경로를 지정하니까 에러가 발생했다.

from .calculator.add_and_multiply import add_and_multiply
 
if __name__ == '__main__':
    print(add_and_multiply(1,2))
#실행결과
#ImportError: attempted relative import with no known parent package

이 에러가 발생한 이유는 파이썬 인터프리터는 상대경로로 모듈의 위치를 정할 때, 다시 말해 기준이 되는 모듈의 위치를 정할 때 __name__속성 값에 의해 결정된다. 인터프리터에서 직접 파이썬 파일을 실행 시키면 __name__ == '__main__'이 된다. 그러면 파이썬은 __main__이라는 모듈의 위치를 알 수 없기 때문에 에러가 발생한다. 해결 할 수 있는 방법은 메인 모듈에서는 항상 절대경로를 사용해야 한다.


profile
riassuc

0개의 댓글