모듈(Module), 패키지(Package)
프로그램 중 실행가능한 일정한 부분을 그룹화할 수 있습니다. 즉, 그 부분에 이름을 부여하여 객체로 만들어 동일한 작업이 필요할 경우마다 그 객체를 참조하여 사용할 수 있습니다. 그러므로 그 분리된 객체 자체가 프로그램이 되며 모듈(Module)이라고 합니다. 동일한 자료형을 사용하는 여러개의 모듈을 하나의 디렉터리내로 묶을 필요가 있습니다. 이것을 패키지(package)라고 합니다. 파이썬에서 사용할 수 있는 다양한 패키지의 존재하며 계속 생성되고 업데이트되고 있습니다.
이와 같이 큰 프로그램을 모듈화하여 사용하는 것은 프로그램의 실행과 수정, 복구 등 다양한 측면에서 유리합니다.
모듈(Module)
- 객체 정의(definition)와 문(statement)을 포함하는 파일
- 파이썬에서 생성하는 모듈의 확장명은 .py입니다.
- 프로그램을 실행 가능한 부분들의 조합으로 작성하기 위해 사용
모듈 전체 또는 일부를 다른 모듈, 프로그램 또는 인터프리터에서 호출하여 사용할 수 있습니다. 예를 들어 객체를 작성하여 확장자 ".py" 형식으로 별도의 파일에 저장한다면 모듈이 됩니다.
모듈/패키지의 import
"임포트(import)"는 파이썬을 작성하고 실행하는 코드 해석기(interpreter)에 모듈을 장착하는 명령 키워드입니다. 다음은 두 수를 더하는 사용자 정의 함수로 별도의 파일(test.py)에 저장된 것입니다. 이 함수는 파이썬 인터프리터의 모든 영역에서 사용할 수 있습니다. 그러나 파이썬 자체를 종결한 후 생성한 함수도 소멸되므로 추후에 사용하기 위해 별도의 파일로 저장합니다. 이렇게 저장된 파이썬 파일이 모듈이 됩니다.
def add(a, b): return a+b
위 파일을 모듈로 사용하기 위해 실행파일에서 test.py를 임포트 합니다. 임포트 된 모듈의 함수를 사용하는 경우 식 1과 같이 그 함수의 모듈(파일)을 명시하여야 합니다.
모듈이름.함수() | (식 1) |
식 1과 같이 모듈이름과 그 내부에 포함된 함수를 연결하기 위해 점(.)을 사용하였습니다.
import test test.add(3,5)
8
패키지의 경우 여러개의 모듈 파일로 구성됩니다. 예를 들어 파이썬에서 가장 많이 사용되는 패키지 중의 하나인 numpy의 경우 core, linalg, random 등의 다양한 서브패키지 또는 서브 모듈(sub package/module)들로 구성되어 있습니다. 그러므로 이 패키지의 특정한 함수를 사용할 경우 그 함수가 포함된 서브모듈의 이름을 명시하여야 합니다. 이 경우 몇 가지의 임포트 방법을 사용할 수 있습니다(표 2).
형 식 | 사 용 |
---|---|
import 패키지 | 패키지.서브모듈.함수() |
import 패키지 as 축약이름 | 축약이름.서브모듈.함수() |
from 패키지 import 서브모듈 | 서브모듈.함수() |
from 패키지 import 서브모듈 as 축약이름 | 축약이름.함수() |
모듈의 경로 설정
파이썬은 임포트하기 위한 모듈의 경로를 먼저 지정하여야 됩니다. 다시 말하면 파이썬에 등록된 위치에 모듈들을 저장해야 합니다.
새로운 경로는 파이썬 패키지 sys의 path.append("경로")
를 사용하여 등록할 수 있습니다. 이 함수는 리스트 형의 결과를 반환합니다. 그러므로 리스트의 요소를 제거할 수 있는 메소드 remove()
를 적용하여 특정 경로를 삭제할 수 있습니다.
import sys sys.path.append('~/python') #새로운 경로 등록 print(sys.path) #확인
[ … '~/anaconda3/lib/python3.8', …, '~/python']
댓글
댓글 쓰기