<Py> Modules & Packages2

Sinjae Lee·2021년 6월 14일
0

calculator package 를 직접 만들고 import 해보자

다음과 같은 구조의 package를 만들었다.

그런데 위처럼 main.py에서 상대경로로 add_and_multiply module의 함수를 import 했더니 ImportError: attempted relative import with no known parent package
에러를 뱉었다
무슨 말이냐면 부모패키지도 모르는데 감히 상대경로로 import를 시도했다는 내용이다

상대경로 import 를 하려면 이 파이썬 파일을 모듈로써 import 해야한다.

따라서 위의 error를 해결하기 위해서는

이처럼 절대경로로 수정해주면 된다.

그러면 위의 모듈중 app_and_multiply 에서 multiply function을 import 해보자

상대경로

-> 위의 error와 같이 부모패키지 못찾겠다고 나온다

절대경로

-> calculation 이라는 module name이 없다고 나온다.

그러면 어떻게??

-> 동일한 dir 내에 있기 때문에 from module import function 만 해주어도 된다.

init.py 파일은 뭔가?

  • __init__.py 파일은 해당 dir 가 package의 일부임을 알려준다.
  • dir 내에 __init__.py 가 없다면 package로 인식되지 않을 수 있다.
profile
Back-end developer

0개의 댓글

관련 채용 정보