IT
파이썬 패키지 상세 가이드
carnival6103
2025. 2. 8. 07:51
반응형
파이썬 패키지는 모듈을 계층적으로 관리하는 구조로, 대규모 프로젝트에서 코드의 유지보수성과 재사용성을 높이는 데 매우 유용합니다. 아래는 파이썬 패키지를 만들고 사용하는 방법에 대한 상세 가이드입니다.
1. 패키지와 모듈의 차이점
- 모듈: 파이썬 코드를 담고 있는 개별 파일입니다. 함수, 클래스, 변수 등을 정의하며, 다른 코드에서 가져와 사용할 수 있습니다.
- 패키지: 하나 이상의 모듈을 묶어 놓은 디렉토리입니다. 하위 패키지를 포함할 수도 있습니다.
2. 패키지 생성 방법
- 프로젝트 디렉토리 생성: 먼저 프로젝트 디렉토리를 만듭니다.
mkdir my_project
- 패키지 디렉토리 생성: 프로젝트 디렉토리 안에 패키지 역할을 할 새로운 디렉토리를 만듭니다.
mkdir my_project/my_package
- 패키지 init.py 파일 정의: 패키지 디렉토리 안에 __init__.py 파일을 생성합니다. 이 파일은 해당 디렉토리가 패키지임을 알려줍니다.
touch my_project/my_package/__init__.py
- 패키지에 모듈 추가: 패키지 디렉토리 안에 함수, 클래스, 또는 변수들을 정의하는 파이썬 모듈(.py 파일)을 추가합니다.
touch my_project/my_package/module1.py
touch my_project/my_package/module2.py
- 패키지에 하위 패키지 추가: 필요에 따라 패키지 디렉토리 안에 하위 패키지를 만들 수 있습니다.
mkdir my_project/my_package/sub_package
touch my_project/my_package/sub_package/__init__.py
touch my_project/my_package/sub_package/module3.py
3. 패키지 활용하기
패키지를 사용하려면 먼저 패키지를 가져와야 합니다. import와 from 키워드를 사용하여 패키지를 가져오고 코드 내에서 사용할 수 있습니다.
import my_package.module1
from my_package.module2 import my_function
4. 절대 임포트와 상대 임포트
- 절대 임포트: 최상위 패키지에서 시작하여 원하는 모듈이나 하위 패키지까지의 전체 경로를 지정합니다.
from my_package.sub_package.module3 import my_class
- 상대 임포트: 현재 모듈의 위치를 기준으로 임포트를 수행합니다.
from ..sub_package.module3 import my_class
5. 편의를 위한 별칭 임포트
코드에서 더 쉽게 참조할 수 있도록 임포트에 별칭을 할당할 수 있습니다.
import my_package.module1 as mod1
result = mod1.my_function()
6. 패키지 배포
패키지를 배포하려면 setup.py 파일을 작성하여 패키지 정보를 포함시킵니다.
from setuptools import setup, find_packages
setup(
name='my_package',
version='0.1',
packages=find_packages(),
install_requires=[
# 필요한 패키지 목록
],
)
이후, 패키지를 빌드하고 배포할 수 있습니다.
python setup.py sdist bdist_wheel
twine upload dist/*
결론
파이썬 패키지를 사용하면 코드를 논리적으로 구성하고 모듈화하여 대규모 프로젝트를 더 효율적으로 관리할 수 있습니다. 패키지와 하위 패키지를 활용하면 코드의 유지보수성과 재사용성을 높일 수 있습니다.
반응형