sys.modules은 파이썬이 모듈이나 package를 찾기위해 가장 먼저 확인하는 곳이다. sys.modules은 단순한 dictionary 이고 이미 import된 모듈과 package들을 저장하고 있다. 새로 import 하는 모듈은 찾을수 없지만 한번 import된 모듈과 package들은 파이썬이 또 다시 찾지 않아도 된다.
sys.path는 가장 마지막에 확인하는 곳이다 String Value가 포함된 List다. 파이썬은 list의 각 경로를 하나 하나 확인하면서 해당 경로에 import 하고자 하는 package가 위치해 있는지 확인한다.
파이썬에서 자동으로 경로를 가져오기 때문에 별도로 지정하지 않아도 된다.
Absolute path는 디렉터리를 모두 적어주어야 하지만 Relative path는 local package 안에서 다른 local package를 import 할 때 사용되며 import 하는 위치를 기준으로 경로를 적어준다.
calculator
패키지 만들기오류 : ImportError: attempted relative import with no known parent package
Solution: 같은 local package에 없기 때문에 절대경로를 사용해야 한다.
같은 디렉터리 안에 있기 때문에 상대 결로로도 이용 가능하다. 코드가 길어지지 않아서 편하긴 하지만 그래도 절대 경로가 더 실수가 없을 것 같다.
해당 파일이 패키지의 일부임을 알려주는 역할을 한다. 만약 init.py 파일이 없다면 패키지로 인식이 불가하다.