014. Python
sys.modules
- 파이썬이 모듈이나 package를 찾기위해 가장 먼저 확인하는 곳
sys.modules는dictionary형태- 한 번 실행된
import된module과package들을 저장(한 번 실행된module과package들을 다시 찾지 않도록 하는 기능) - 로 import 하는 모듈은
sys.modules에서 찾을 수 없음
sys.path
sys.path는string요소들을 가지고 있는list형태string요소들은 경로를 나타냄
['',
'/Users/song-eun-u/anaconda3/bin',
'/Users/song-eun-u/anaconda3/lib/python36.zip',
'/Users/song-eun-u/anaconda3/lib/python3.6',
'/Users/song-eun-u/anaconda3/lib/python3.6/lib-dynload',
'/Users/song-eun-u/anaconda3/lib/python3.6/site-packages',
'/Users/song-eun-u/anaconda3/lib/python3.6/site-packages/aeosa',
'/Users/song-eun-u/anaconda3/lib/python3.6/site-packages/IPython/extensions',
'/Users/song-eun-u/.ipython']
list의 각 경로를 하나 하나 확인하면서 해당 경로에import하고자 하는package가 위치해 있는지 확인
1. sys.modules sys.path 차이
sys.modules는 한번도 실행하지 못한module이나package의 정보를 가지고 있지 않지만sys.path는 경로에 저장되어 있다면 찾아낼 수 있다
2. sys 도 import 해야하는 모듈입니다. 파이썬은 sys 모듈의 위치를 어떻게 찾을 수 있을까요?
sys모듈은 파이썬에 내장되어 있는 모듈로 파이썬 내부에 저장되어있다
import sys
print(sys.builtin_module_names)
builtin module의 목록을 불러와서 확인할 수 있다
3. Absolute path와 relative path의 차이점을 서술해 주세요.
Absolute path의 경우 나의 위치와 관계없이 원하는 곳이 어떤 경로 안에 위치해 있는지 지정해서 움직이는 방면,relative path는 현재 나의 위치를 기준으로 이동하고 싶은 위치로 이동하는 방법이기 때문에, 아무래도Absolute path보다는 헷갈릴 가능성이 존재한다
4. calculator 패키지 만들기

5. main.py에서 상대경로로 add_and_mutiply 를 임포트 했을 때 발생하는 에러를 확인하고, 다음의 파이썬 공식 문서를 참고해서 main module 에서는 패키지의 모듈을 어떻게 임포트 해야하는지 블로깅 해주세요.


- 참고 자료를 살펴 보니
relative path의import는 현재의 모듈을 기반으로 이루어진다. 직접 실행하는 모듈(메인 모듈)의 이름은 항상 "__main__"이고, 파이썬에서 메인 모듈은 항상absolute path를 사용해야하기 때문에relative path를absolute path로 설정해주면 된다

- 값이 5로 잘 출력되는 상황이다
6. add_and_multiply.py에서 multiply함수를 절대경로와 상대경로도 각각 임포트 해보고 main 모듈과 차이점을 생각해보고 결과를 출력해 보세요.
- 상대 경로와 절대 경로 모두 결과를 잘 출력해 준다
add_and_multiply.py는\__main__.py가 아니기 때문에 절대 경로든 상대 경로든 문제 없이 동작한다.
7. init.py 파일의 역할에 대해서도 정리해서 블로깅 해주세요.
\__init__.py가 존재하는 디렉토리는 패키지의 일부임을 알려주는 역할을 한다- package 초기 설정을 할 수 있는 역할을 한다
\__init__.py파일이 존재하지 않는다면 패키지의 일부인지 인식을 하지 못해 속성을 가지고 있지 않는다는 에러가 발생package실행 시 설정해주고 싶은 초기 설정이 있다면 이 파일에 초기 설정에 관련된 코드들을 작성하면 작성 한 코드의 내용대로package실행 시 자동으로 실행
Author And Source
이 문제에 관하여(014. Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hiyee-gj/014.-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)