TIL23 | Python_패키지 만들기

이정아·2021년 9월 21일
0

Python

목록 보기
14/20
post-thumbnail

앞으로 개발하면서 많은 패키지를 사용할 것이고 만들어야 하는 경우도 있을 수 있기 때문에 이번과제는 직접 패키지를 만들어 보는 과제 입니다.

로컬 환경에서 파이썬을 설치하고 진행해 주세요.

디렉토리 구조는 다음과 같고 각 파일의 코드내용은 다음과 같습니다.

현재 __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가 메인모듈이 되어 절대경로로 바꿔줬다.


❓❓❓

그럼 상대경로는 언제 오류 없이 쓸 수 있는 거지..?
과제 해결은 했지만 찝찝하다.
아직 이해가 잘 안되는 ㅠㅠ 더 깊이 알아봐야겠다.

0개의 댓글