[Python]calculator 패키지 만들기

Jimin_Note·2022년 5월 26일
0

[Python]

목록 보기
21/34
ㄴ calculator
    ㄴ __init__.py
    ㄴ add_and_multiply.py
    ㄴ multiplication.py
ㄴ main.py

__init__.py

__init__.py 파일은 해당 디렉토리가 패키지임을 알려주는 역할만을 위해 만들어졌기 때문에 아무코드도 없다.

main.py

# absolute path
# from calculator.add_and_multiply import add_and_multiply

# relative path
# from .calculator.add_and_multiply import add_and_multiply

if __name__=='__main_':
    print(add_and_multiply(1,2))

add_and_multiply.py

from .multiplication import multiply
# from calculator.multiplication import multiply

def add_and_multiply(a,b):
    return multiply(a,b) + (a+b)

multiplication.py

def multiply(a, b):
    return (a * b)

main.py에서 relative path로 add_and_mutiply 를 import시 발생하는 에러를 확인 후 main module 에서는 패키지의 모듈을 어떻게 임포트 해야하는지(파이썬 공식 문서를 참고)

에러코드

:main.py에서 relative path로 add_and_mutiply 를 import시 발생하는 에러발생

ImportError: attempted relative import with no known parent package

relative path는 모듈 안에서만 사용해야 한다. 일반적으로 local package 안에서 다른 local package를 import 할때 사용된다.

즉, main.py 에서는 absolute path(절대 경로)로 패키지의 모듈을 임포트 해야 한다.

  • add_and_multiply.py 의 절대경로와 상대경로 모두 정상적으로 출력
    => add_and_multiply.py 는 패키지 안에 들어있는 모듈이기 때문에 절대경로와 상대경로 모두 실행되며, main.py는 패키지 안에 들어있지 않기 때문에 상대경로는 실행이 안되고 절대경로만 실행이 된다.
profile
Hello. I'm jimin:)

0개의 댓글