작성
·
177
1
외와 같이 모듈화 후에
run.py 에 import 를
=> from main import app
__init__.py 에 import
=> from main import app
이렇게 임포트 하셨습니다
약 5분 6초 정도 내용입니다
run.py 위치와
__init__.py 의 위치가 다른데
같은 코드로 import를 한다는게 이해하는게 어렵습니다.
__init__.py는 main폴더와 같은거니깐
그럼 run.py 와 mian 폴더의 위치가 같아 진다고 생각하면 될까요?
근데 이렇게 생각하면,
추후에 코드가
board.py 에서도
from main import * 을 하는데
run.py 와 board.py의 위치는 다른데
왜 둘다 from main 으로 import가 가능한지 모르겠습니다
모듈 임포트가 너무 어렵네요 ㅠㅠ
답변 1
1
파이썬에서 패키지를 생성할때 폴더에 __init__.py 파일을 생성하는 규칙이 있습니다. 예를 들어 a 라는 폴더에 __init__.py 파일이 존재한다면 import a 는 패키지처럼 불러오기가 가능해집니다.
run.py 는 main 폴더와 같은 레벨에 존재하고 있는 상태인데 main 폴더 하위에 __init__.py 를 생성함으로 인해서 main 폴더 내에 있는 모든 파일들은 main 이라는 덩어리로 접근이 가능해지게 됩니다.
그래서 실제 패키지(pip 로 설치하는..) 폴더를 보면 __init__.py 파일에 아무런 내용이 없는 파일이 존재하는 이유도 폴더 내의 .py 파일을 하나의 덩어리로 묶어서 접근이 가능하게 하기 위함을 알 수 있습니다.