import my_package
파이썬은 3가지의 장소를 순서대로 보면서 찾는다.
1. sys.modules
built-in modules
sys.path
sys.modules는 파이썬이 모듈이나 패키지를 가장먼저 확인 하는 장소이다.
sys.modules는 단순히 Dictionary로 되어있다. 그리고 import된 모듈과 패키지를 저장하고 있따.
만약 한번 저장된 모듈이나 패키지를 import 할 때다시 찾지 않아도 바로 있기 때문에 가져온다.
그러므로 새로 import하는 모듈은 sys.modules에서 찾을 수 없다.
파이썬에서 제공하는 공식 라이브러리 이다. Built-in modules는 이미 파이썬에 포함되어 나오므로 파이썬이 쉽게 찾을수 있다.
마지막으로 보는 장소는 sys.path이다. syspath는 기본적으로 list이며 string 요소 들을 가지고 있다.
각 요소들은 경로로 나타나있다.
['',
'/Users/ttwkr/anaconda3/bin',
'/Users/ttwkr/anaconda3/lib/python36.zip',
'/Users/ttwkr/anaconda3/lib/python3.6',
'/Users/ttwkr/anaconda3/lib/python3.6/lib-dynload',
'/Users/ttwkr/anaconda3/lib/python3.6/site-packages',
'/Users/ttwkr/anaconda3/lib/python3.6/site-packages/aeosa',
'/Users/ttwkr/anaconda3/lib/python3.6/site-packages/IPython/extensions',
'/Users/ttwkr/.ipython']
그래서 파이썬은 List 요소 하나하나 확인하면서 해당경로에 import하고자 하는 패키지가 있는지 확인한다.
sys.modules는 파이썬이 제일 먼저 확인하는 장소이며 Dictionary이고
sys.path는 파이썬이 제일 마지막에 확인하는 장소이고 List형 이다.
sys도 파이썬의 내장모듈이고 파이썬이 설치될때 내장모듈도 같이 설치되므로 기본적으로 path의 정보가 기본값으로 정해져 있다.
Absolute path
Absolute path는 루트(/)를 기준으로 시작하여 경로가 표시된다.
Absolute path는 루트(/)부터 시작하기때문에 폴더가 많다면 경로가 길어지는 단점이 있다.
relative path
relative path는 import된 파일의 위치를 기준으로 경로가 표시된다.
relative path는 파일의 위치를 기준으로 하기때문에 파일의 위치를 상세하게 알수가 없다. 그래서 파일 이 변경되어도 위치를 알수 없다는 단점이 있다.
파이썬 포스트 너무 잘 보고 있습니다!!
감사합니다~~!