메인 모듈의 경로
└─ 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__
이라는 모듈의 위치를 알 수 없기 때문에 에러가 발생한다. 해결 할 수 있는 방법은 메인 모듈에서는 항상 절대경로를 사용해야 한다.
Author And Source
이 문제에 관하여(메인 모듈의 경로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@riassuc/메인-모듈의-경로-v4hwhqov저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)