파이썬 모듈과 패키지: 경로 지정과 가져오기 마스터하기
파이썬 코드를 효율적으로 관리하고 재사용하기 위해서는 모듈과 패키지의 개념을 이해하는 것이 필수적입니다. 모듈은 특정 기능을 담은 파이썬 코드 조각이고, 패키지는 관련된 여러 모듈을 묶어서 관리하는 폴더입니다. 이 글에서는 파이썬 모듈과 패키지를 사용하는 방법, 특히 경로 지정과 가져오기의 중요성을 자세히 알아보겠습니다.
1, 모듈: 코드 재사용의 기본 단위
모듈은 파이썬 코드를 논리적으로 분리하고 재사용성을 높이기 위한 가장 기본적인 단위입니다. 파일 하나에 함수, 클래스, 변수 등의 코드를 담아서 관리하는 방식이죠. 모듈을 사용하면 코드가 더욱 명확하고 체계적으로 구성될 뿐만 아니라, 다른 프로젝트에서도 쉽게 재사용할 수 있습니다.
1.1 모듈 생성 및 사용하기
모듈을 생성하는 것은 매우 간단합니다. 새로운 파이썬 파일을 만들고, 원하는 함수, 클래스, 변수를 정의하면 됩니다. 예를 들어, my_module.py
라는 파일을 만들고 다음과 같은 코드를 작성해 보겠습니다.
python
my_module.py
def greet(name): """ 이름을 입력받아 인사말을 출력하는 함수입니다. """ print(f"안녕하세요, {name}님!")
class Calculator: """ 덧셈 연산을 수행하는 클래스입니다. """ def add(self, num1, num2): return num1 + num2
이제 my_module.py
파일을 작성했다면, 다른 파이썬 스크립트에서 import
문을 사용하여 이 모듈을 가져와 사용할 수 있습니다.
python
main.py
import my_module
mymodule.greet("김철수") # mymodule 모듈의 greet 함수 호출
calculator = my_module.Calculator() result = calculator.add(10, 20) print(f"10 + 20 = {result}")
위 예시에서 볼 수 있듯이, import my_module
문을 통해 my_module.py
파일을 가져왔고, my_module.greet()
와 my_module.Calculator()
와 같이 모듈 내부에 정의된 함수와 클래스에 접근하여 사용할 수 있습니다.
1.2 from ... import ...
구문: 특정 요소만 가져오기
import
문은 모듈 전체를 가져오는 방식입니다. 모듈 내의 특정 함수, 클래스, 변수만 가져와 사용하고 싶을 때는 from ... import ...
구문을 사용할 수 있습니다.
python
main.py
from my_module import greet, Calculator
greet("박영희") # my_module 모듈의 greet 함수 호출
calculator = Calculator() result = calculator.add(10, 20) print(f"10 + 20 = {result}")
이 경우 from my_module import greet, Calculator
문을 통해 greet
함수와 Calculator
클래스만 main.py
파일에 가져왔습니다. 이제 greet("박영희")
와 calculator = Calculator()
처럼 모듈 이름을 명시하지 않고 바로 사용할 수 있죠.
2, 패키지: 모듈을 효율적으로 관리하기
패키지는 관련된 여러 모듈을 묶어서 관리하는 폴더입니다. 패키지를 사용하면 대규모 프로젝트에서 코드를 효율적으로 구성하고, 모듈 간의 의존성을 관리하기 쉬워집니다.
2.1 패키지 생성 및 사용하기
패키지를 생성하려면 폴더를 만들고, 그 폴더 안에 __init__.py
파일을 생성해야 합니다. __init__.py
파일은 패키지를 초기화하는 역할을 하는 파일입니다. 이 파일은 비어있어도 되지만 일반적으로 패키지의 초기 설정이나 사용할 모듈을 명시하는 코드를 포함하기도 합니다.
예를 들어, my_package
라는 이름을 가진 패키지를 만들고, 이 패키지 안에 utils.py
와 data.py
라는 두 개의 모듈을 포함한다고 가정해 보겠습니다.
my_package/ ├── init.py ├── utils.py └── data.py
utils.py
파일은 다양한 유틸리티 함수를 담는 모듈이고, data.py
파일은 데이터 처리를 위한 모듈이라고 가정합니다. 이제 main.py
파일에서 my_package
패키지의 utils
모듈과 data
모듈을 가져와 사용해 보겠습니다.
python
main.py
import mypackage.utils import mypackage.data
result = mypackage.utils.calculateaverage([10, 20, 30]) print(f"평균: {result}")
data = mypackage.data.loaddata("data.csv") print(f"데이터: {data}")
위 코드에서 볼 수 있듯이, 패키지 이름을 사용하여 모듈에 접근할 수 있습니다. my_package.utils
와 my_package.data
는 각각 my_package
패키지에 포함된 utils
모듈과 data
모듈을 나타냅니다.
2.2 from ... import ...
구문: 패키지에서 특정 요소 가져오기
패키지에서도 from ... import ...
구문을 사용하여 특정 모듈이나 모듈 내 요소만 가져올 수 있습니다.
python
main.py
from mypackage.utils import calculateaverage from mypackage.data import loaddata
result = calculate_average([10, 20, 30]) print(f"평균: {result}")
data = load_data("data.csv") print(f"데이터: {data}")
위 코드에서는 my_package
패키지의 utils
모듈에서 calculate_average
함수만, data
모듈에서 load_data
함수만 가져왔습니다. 이제 calculate_average([10, 20, 30])
처럼 패키지 이름을 생략하고 바로 함수를 호출할 수 있죠.
3, 모듈/패키지 경로 지정: 찾기의 비밀
파이썬은 import
문을 통해 모듈이나 패키지를 가져올 때, 현재 작업 디렉토리, 시스템 경로, 환경 변수 등을 기반으로 파일 시스템에서 모듈/패키지 파일을 찾습니다.
3.1 현재 작업 디렉토리: 현재 위치에서 찾기
파이썬 스크립트를 실행하는 디렉토리, 즉 현재 작업 디렉토리는 모듈/패키지를 검색하는 기본 경로입니다. 현재 작업 디렉토리에 있는 모듈/패키지는 import
문으로 바로 가져올 수 있습니다.
python
main.py
import my_module
my_module.greet("김철수")
위 코드에서는 my_module.py
파일이 main.py
와 동일한 디렉토리에 위치하고 있어서 import my_module
문으로 바로 가져올 수 있습니다.
3.2 시스템 경로: 파이썬이 미리 설정한 경로
파이썬은 설치 과정에서 시스템 경로에 여러 폴더를 추가합니다. 이 폴더들은 sys.path
리스트에 저장되며, 파이썬은 이 경로 목록에서 모듈/패키지를 찾습니다. sys.path
리스트는 sys
모듈을 통해 확인할 수 있고, 추가적인 경로를 넣어서 더 넓은 범위에서 모듈/패키지를 검색할 수 있습니다.
python import sys print(sys.path)
3.3 패키지 경로 지정: __init__.py
파일의 역할
`__
'파이썬배우기' 카테고리의 다른 글
파이썬 정규 표현식으로 URL 유효성 검사하기 (0) | 2024.10.30 |
---|---|
파이썬 GUI 스크립트 정리: 모듈화, 클래스 및 함수 사용 (0) | 2024.10.30 |
파이썬에서 오류 처리를 활용한 응용 프로그램 개발 (1) | 2024.10.30 |
파이썬으로 콘솔에 인쇄하는 함수 (0) | 2024.10.30 |
파이썬 GUI 스타일 및 테마 조정하기 (0) | 2024.10.30 |