Python/포스팅

파이썬 패키지

짜집퍼박사(짜박) 2023. 12. 3. 12:49

파이썬 패키지는 모듈들을 조직화하기 위한 디렉터리 구조를 가진 파이썬 모듈들의 묶음입니다. 이를 통해 코드를 논리적으로 그룹화하고 유지보수를 쉽게 할 수 있습니다. 아래는 파이썬 패키지에 대한 자세한 내용입니다.

 

패키지 생성

 

1. 디렉터리 구조 생성

패키지는 디렉터리로 표현됩니다. 패키지 안에는 __init__.py 파일이 있어야 합니다. 이 파일은 해당 디렉터리를 패키지로 인식하게 합니다.

mypackage/
|-- __init__.py
|-- module1.py
|-- module2.py

__init__.py 파일은 비어 있어도 되지만, 패키지 초기화 코드를 포함할 수도 있습니다.

 

2. 모듈 생성

각 디렉터리 안에는 모듈 파일이 위치할 수 있습니다.

# module1.py

def func1():
    print("Function 1")

# module2.py

def func2():
    print("Function 2")

 

 

패키지 사용

 

1. 패키지 내 모듈 불러오기

# 다른 스크립트에서 패키지 내 모듈 불러오기

from mypackage import module1, module2

module1.func1()  # 출력: Function 1
module2.func2()  # 출력: Function 2

 

 

2. __init__.py를 활용한 초기화 코드

패키지의 __init__.py 파일에 초기화 코드를 추가할 수 있습니다. 이 코드는 패키지가 임포트될 때 한 번 실행됩니다.

# mypackage/__init__.py

print("Initializing mypackage")

# 다른 스크립트에서 패키지 불러오기

from mypackage import module1, module2
# 다른 스크립트에서 실행

# 출력: Initializing mypackage
# 출력: Function 1
# 출력: Function 2

 

3. 상대적인 패키지 및 모듈 불러오기

패키지 내부에서는 상대적인 경로를 사용하여 패키지 내의 모듈을 불러올 수 있습니다.

# module1.py

from .module2 import func2

def func1():
    print("Function 1")
    func2()  # 다른 모듈 불러오기

 

4. 패키지의 서브 패키지

더 복잡한 프로젝트에서는 패키지 내부에 또 다른 서브 패키지를 생성할 수 있습니다.

mypackage/
|-- __init__.py
|-- module1.py
|-- module2.py
|-- subpackage/
|   |-- __init__.py
|   |-- module3.py
|   |-- module4.py

이런 구조에서 패키지 또는 서브 패키지 내의 모듈을 불러올 때에는 경로를 이용하여 임포트합니다.

# 패키지 내의 모듈 불러오기

from mypackage import module1, module2
from mypackage.subpackage import module3, module4

패키지를 사용하면 코드를 논리적으로 구조화하여 모듈 간의 의존성을 관리하고 유지보수를 용이하게 할 수 있습니다.

 

With ChatGPT