-
Module Importpython/기본 2022. 4. 30. 20:06
문제
my_project/ ├── main.py └── my_pkg ├── __init__.py ├── util_a │ ├── __init__.py │ └── a.py └── util_b ├── __init__.py └── b.py
python 프로젝트가 위와 같이 구성되어 있을 때, 디렉토리 하위에 __init__.py 파일이 있으면 모듈로 인식한다.
b.py 에서 a.py 를 참조하는 예제를 만들어 보자
코드
a.py
def a_echo(): print('AAA')
b.py
# from ..util_a import a from my_pkg.util_a import a def b_echo(): a.a_echo() print('BBB')
from ..util_a import a 처럼 사용할 수도 있지만 자주 사용하지는 않는다?
main.py
from my_pkg.util_b import b b.b_echo()
설명
main.py 를 아래처럼 수정 하면 에러가 난다.
from my_pkg.util_b import * b.b_echo()
위의 코드를 문제 없이 동작하게 하려면 my_pkg/util_b/__init__.py 에 아래 내용을 추가한다.
__all__ = ['b']
이제 util_b 하위에 'b' 가 있는 것을 안내해 주고 있기 때문에 main.py 는 문제 없이 동작한다.
module 을 찾는 경로는 아래처럼 확인할 수 있다.
import sys print(sys.modules['os']) print(sys.path) sys.path.append('/opt') # export PYTHONPATH=/foo:/bar
intellij 에서 Module 인식
File > Project Structure 메뉴의 Modules 항목에서 my_project 를 모듈로 등록한다.
'python > 기본' 카테고리의 다른 글
Built-in Functions (0) 2022.04.30 setup.py 로 패키지 만들기 (0) 2022.04.30 Exception (0) 2022.04.29 Namespace & Scope (0) 2022.04.29 Generator (0) 2022.04.29