앞으로 개발하면서 많은 패키지를 사용할 것이고 만들어야 하는 경우도 있을 수 있기 때문에 이번과제는 직접 패키지를 만들어 보는 과제 입니다.
로컬 환경에서 파이썬을 설치하고 진행해 주세요.
디렉토리 구조는 다음과 같고 각 파일의 코드내용은 다음과 같습니다.
현재 __init__.py
파일에는 아무코드도 없지만 init 파일은 해당 디렉토리가 패키지임을 알려주는 역할을 합니다.
__init__.py
파일이 없다면 패키지로 인식하지 않습니다.
main.py
# absoulte 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)
과제 1)
main.py에서 상대경로로 add_and_mutiply 를 임포트 했을 때 발생하는 에러를 확인하고, 다음의 파이썬 공식 문서를 참고해서 main module 에서는 패키지의 모듈을 어떻게 임포트 해야하는지 블로깅 해주세요.
https://docs.python.org/3/tutorial/modules.html#intra-package-references
해결)
공식문서에 main모듈은 절대경로를 사용해야 한다고 써있다.
상대경로에서 절대경로로 바꿔줬다.
과제2)
add_and_multiply.py에서 multiply함수를 절대경로와 상대경로도 각각 임포트 해보고 main 모듈과 차이점을 생각해보고 결과를 출력해 보세요.
해결)
main.py와 동일한 에러가 발생했고 add_and_multiply.py가 메인모듈이 되어 절대경로로 바꿔줬다.
그럼 상대경로는 언제 오류 없이 쓸 수 있는 거지..?
과제 해결은 했지만 찝찝하다.
아직 이해가 잘 안되는 ㅠㅠ 더 깊이 알아봐야겠다.