파이썬은 module 또는 package가 import 되었을 때 3가지 방법으로 해당 파일 있는지 확인한다.
1. sys.module
- dictionary 형태의 data
- import된 module 또는 package 를 저장
- 이미 import된 module 또는 package는 다시 찾지 않도록 함
- 새롭게 import된 module 또는 packag는 찾을 수 없음
2. Built-in modules
- 파이썬에서 제공하는 공식 라이브러리
- 이미 파이썬에 포함되어 있어 쉽게 찾음
- sys module 또한 파이썬에서 제공하는 라이브러리이기 때문에 built-in 방식으로 찾음
3. sys.path
- list 형태의 data
- Python 라이브러리가 설치되어 있는 디렉터리를 보여줌
- 디렉터리들 안에 module 또는 package가 있으면 해당 module 또는 package 사용 가능
- 디렉터리 안에 없는 파일은 sys.path.append("경로")을 이용해 경로를 추가하여 사용 가능
4. Absolue path vs Relative path
1) Absolute path
- 파일의 경로를 프로젝트의 최성위 디렉터리부터 시작
- 프로젝트 내에서는 항상 경로가 동일 함
- 경우의 따라 경로의 길이가 길어질 수 있음
2) Relative path
- Absolute path의 경로가 길어지는 것을 보완
- (.)은 현재 파일의 위치이며 현재 위치에 있는 파일을 import
-(..)은 현재 위치에서 상위 디렉터리에 있는 파일을 import
- Relative path은 파일의 경로를 헷갈리기 쉽고, 위치 변경시 파일의 경로를 다시 설정해야 한다.
- Absolute path을 사용하는 것을 권장
-현재 파일이 package2의 module3에 위치
-현재 파일 위치의 class1을 import 함
-현재 파일 위치의 subpackage의 module5의 function2을 import 함