본문 바로가기
프로그래밍/파이썬 Python

[파이썬 문법] 7-1. 모듈(Module)사용법과 경로지정2가지 - 질문으로 공부하기

by it-수다쟁이증후군 2023. 4. 12.

Q1.나)
모듈의 개념과 사용법 에 대해서 알려주세요.

"7-1 모듈 개념과 사용법"문장을 타이포그라피로 만든 썸네일

A1.ssam)
모듈(Module)은 파이썬에서

  • 관련된 코드를 그룹화하고,
  • 재사용하기 쉽게 만든 파일입니다.
  • 모듈은 함수, 클래스, 변수 및 상수 등을 포함할 수 있습니다.
  • 모듈을 사용하려면 먼저 해당 모듈을 가져와야 합니다.
  • 이를 위해 import 문을 사용합니다.

예제)먼저 모듈을 작성해야 합니다. mymodule.py라는 파일을 생성하고 아래의 코드를 작성해봅시다.

### mymodule.py

def hello(name):
    return f"안녕하세요, {name}님!"

def add(a, b):
    return a + b

CONSTANT_EXAMPLE = 3.14159

이제 main.py라는 파일에서 mymodule.pyimport하여 사용하는 방법을 살펴봅시다.

### main.py

# 모듈을 import합니다.
import mymodule

# 모듈의 함수를 사용합니다.
greeting = mymodule.hello("철수")
print(greeting)  # 출력: 안녕하세요, 철수님!

result = mymodule.add(3, 4)
print(result)  # 출력: 7

# 모듈의 상수를 사용합니다.
print(mymodule.CONSTANT_EXAMPLE)  # 출력: 3.14159

또한, 모듈에서 특정 기능만 가져오고 싶다면 from ... import ... 문을 사용할 수 있습니다.

### main.py

# 모듈에서 특정 기능을 import합니다.
from mymodule import hello, add

# 모듈의 함수를 직접 사용합니다.
greeting = hello("영희")
print(greeting)  # 출력: 안녕하세요, 영희님!

result = add(5, 6)
print(result)  # 출력: 11

이렇게 모듈을 생성하고 사용하는 방법을 통해 코드를 재사용하고, 프로젝트를 더욱 체계적으로 관리할 수 있습니다.

Q2.나)
모듈을 사용하기 위해서 모듈이 위치한 폴더를 지정하는 방법에 대해서 알려주세요.

A2.ssam)
모듈위치에 대한 기초사항)

  • 모듈의 위치는 파이썬이 모듈을 찾을 수 있는 경로에 있어야 합니다.
  • 파이썬은 모듈을 찾기 위해 sys.path 변수에 지정된 경로 목록을 사용합니다.
  • 기본적으로 현재 작업 디렉토리와 파이썬 설치 경로가 sys.path에 포함됩니다.

위에 내용을 확장하여 다른 위치에 있는 모듈을 가져오려면, 두 가지 방법을 사용할 수 있습니다:

  • sys.path에 모듈이 있는 경로를 추가합니다.
  • 모듈이 있는 경로를 환경 변수 PYTHONPATH에 추가합니다.

예를 들어,
/path/to/my_module라는 디렉토리에
custom_module.py라는 모듈이 있다고 가정해봅시다.

방법 1: sys.path에 모듈이 있는 경로를 추가

import sys
sys.path.append('/path/to/my_module')

import custom_module

# custom_module.py의 함수를 사용
result = custom_module.my_function()

방법 2: 환경 변수 PYTHONPATH에 모듈이 있는 경로를 추가(환경 변수를 설정하는 방법은 운영체제에 마다 다름)

Linux와 macOS에서: 터미널에서 다음 명령어를 실행합니다.

export PYTHONPATH="/path/to/my_module:$PYTHONPATH"

Windows에서: 명령 프롬프트에서 다음 명령어를 실행합니다.

set PYTHONPATH=C:\path\to\my_module;%PYTHONPATH%

Windows에서: 환경 변수를 설정한 후에는 파이썬 스크립트를 실행하면서 모듈을 가져올 수 있습니다.

import custom_module

# custom_module.py의 함수를 사용
result = custom_module.my_function()

Q3.나)
추가적으로 모듈(Module) 사용에 대해서 주의 해야 할 점 있나요?

A3.ssam)
모듈(Module)을 사용할 때에는 몇 가지 주의해야 할 점이 있습니다.

  1. 모듈 이름의 충돌 방지 : 모듈 이름에 유일한 이름을 사용해야 함
  2. 임포트 경로 설정 : 경로 설정이 잘못되면 모듈을 찾을 수 없는 오류가 발생할 수 있습니다.
  3. 모듈의 업데이트 : 모듈을 업데이트할 때에는, 업데이트된 모듈을 사용하는 다른 모듈도 함께 업데이트해야 합니다. 
  4. 모듈 내의 전역변수와 함수 :  모듈이 임포트될 때마다 새로 생성되지 않습니다. 따라서, 모듈 내에서 전역변수와 함수를 사용할 때에는 주의해야 합니다.
  5. 모듈 내의 비공개 속성과 메서드 : 이름 앞에 언더바(_)를 붙이면, 비공개 속성과 메서드로 정의할 수 있습니다. 이러한 속성과 메서드는 외부에서 직접 접근할 수 없습니다.

Q4.나)
모듈에 대해서 추가적으로 더 알아야 할것들에 대해서 설명해주세요.

A4.ssam)
위에 부분 부분 나온 내용을 주제별로 묶었습니다. 확인만 하시면 됩니다.(3번 추가)

1)내장 모듈(Built-in Module)

  • 파이썬에서 기본적으로 제공되는 모듈로, 추가적인 설치 없이 바로 사용 가능
  • sys, os, datetime 등이 대표적인 내장 모듈

2)외부 모듈(External Module)

  • 파이썬에서 기본적으로 제공되지 않는 모듈로, 별도로 설치해야 사용 가능
  • numpy, pandas, matplotlib 등이 대표적인 외부 모듈
  • pip 패키지 매니저를 사용하여 외부 모듈을 설치할 수 있음

3)모듈 캐싱(Module Caching)

  • 파이썬은 한 번 임포트된 모듈은 캐싱하여 다음에 임포트할 때, 캐시된 모듈을 사용함
  • 모듈이 수정되었을 경우, 모듈을 다시 임포트해야 수정된 모듈을 사용할 수 있음

이러한 내용들을 추가적으로 이해하면, 모듈을 더욱 효율적으로 사용할 수 있습니다.

댓글