파이썬 모듈과 패키지

JHKim·2023년 10월 16일
0

Python_study_note

목록 보기
3/7
post-thumbnail

단상

수업을 들으면서 네이버 블로그를 연습장처럼 사용하고 있는데, 벨로그에 정리하면서 한 번 더 보게 되니 복습되는 것 같아 좋다.


모듈 Module

  • 쉽게 말하면 모듈은 함수가 정의되어 있는 파이썬 파일이다.
    - 따라서 확장자도 py
  • 작성하고 있는 파일에 내가 사용할 모든 함수를 정의하면 파일 자체의 가독성이 떨어지고 함수를 찾기도 어려워지니까 별도 파이썬 파일을 만들어서 함수들을 묶어 놓는 거라고 보면 된다.
    - 실행 파일과 동일한 디렉토리 안에 있어야 함!
  • 내부모듈: 파이썬 설치 후 기본적으로 사용할 수 있는 모듈
  • 외부모듈: 별도 설치 후에 사용할 수 있는 모듈(판다스, 넘파이 등)
  • 사용자 모듈: 사용자가 만든 모듈

모듈 사용하기

  • import 키워드로 사용한다.
  • as 키워드를 통해 닉네임을 부여해서 간결하게 쓸 수도 있다.
  • from 모듈명 import 함수명 형식으로 특정 기능만 사용할 수 있다.
    - 이 경우, 모듈 사용할 때 모듈 이름이나 닉네임 적지 않고 바로 함수명 호출
    - 안 가져온 기능 사용하려고 하면 에러 코드
    - 만약 모두 가져오는 경우, 사용(는 전체의 의미 가지고 있음)
from cal import add
from cal import sub

# 또는
from cal import add, sub

add(10, 20)

패키지

  • 관련있는 모듈을 묶어 하나의 디렉토리로 관리할 때, 이 디렉토리를 패키지라 한다.
    - 아이폰 폴더 정리하는 것과 동일
  • 모듈 이름이 똑같은 경우, 그 상위의 디렉토리(패키지)를 만들어서 모듈 구분할 수 있다.

패키지 사용하기

  • 호출할 때: from 패키지명 import 모듈명
  • 실행 파일과 동일한 디렉토리 안에 있어야 함!

site-package

  • 모듈을 다른 디렉토리에 두거나, 다른 디렉토리에 있는 걸 가져오고 싶을 때 사용하는 디렉토리
  • 지금까지의 실행파일, 모듈, 패키지는 모두가 실행파일과 동일한 디렉토리 안에 있을 때만 사용이 가능했다.
  • 이 안에 모듈을 넣어두면 어떤 파일에서든 쓸 수 있다!
import sys   # 시스템에 있는 간략 정보 들어있는 모듈

for path in sys.path:   # 모듈들이 들어있는 경로 나열
    print(path)

# 이 실행프로그램이 돌아가기 위해 참조하는 디렉토리가 결과값으로 출력됨
<result>
E:\데이터스쿨\pythonEx\project\venv\Scripts\python.exe 
E:\데이터스쿨\pythonEx\project\5\5_015\sitPackage.py 
E:\데이터스쿨\pythonEx\project\5\5_015
E:\데이터스쿨\pythonEx\project
C:\Users\user\AppData\Local\Programs\Python\Python311\python311.zip
C:\Users\user\AppData\Local\Programs\Python\Python311\DLLs
C:\Users\user\AppData\Local\Programs\Python\Python311\Lib
C:\Users\user\AppData\Local\Programs\Python\Python311

E:\데이터스쿨\pythonEx\project\venv   
//vertual environment. 파이썬이 돌아가는 가상환경을 구현하는 디렉토리. 
//3.9, 3.11 버전 충돌, 라이브러리 등을 지정해 가상환경을 셋팅하고 작업 가능
//가상환경 간 간섭 없음

E:\데이터스쿨\pythonEx\project\venv\Lib\site-packages
//프로젝트에서 범용적으로 쓸 수 있는 디렉토리.
//이 안에 넣으면 project 안에 있는 폴더 어디에서도 다 쓸 수 있음

Tip. 사용 중인 파일 중에서 실행파일(main) 찾기

  • __ name __ 전역변수(언더바 2개씩임)를 사용한다.
  • __ name 에는 모듈이름이 저장되거나 ' main __'이 저장된다.
  • 어떤 값이 저장되어 있는가? 파이썬 파일명이 문자열로 저장되어 있음
    - 단, 모듈파일을 실행하는 실행 파일에는 이름 대신 '__ main __'을 저장하고 있음
    - 따라서 파이썬 파일 여러 개를 만들어 쓰고 있는 경우, 실행 파일을 구분 가능
  • 제일 먼저 실행되는 파일(프로그램의 시작 파일)을 찾을 수 있음


(위 이미지는 5_011파일에서 student 모듈을 임포트해 쓰고 있는 상태)

<result>
student   # student 모듈 마지막에 print(__name__)이 있기 때문에 실행 시 모듈명이 출력됨
국어 입력: 100
영어 입력: 100
수학 입력: 100
총점: 300
평균: 100.0
__main__   # 실행 중인 5_011파일의 __name__이 출력됨

__ main __전역변수의 응용

  • 만약 어떤 파일 안에 만들어 둔 함수를 또 쓰고 싶을 때, 실행하지 않을 영역에 아래를 추가, tab으로 코드블록화한다.
  • 해당 모듈 파일에 자동 실행문이 많을 수 있으므로, 그걸 막는 방법임

0개의 댓글