본문으로 바로가기

Module and Project

category boostcamp/AI tech prep 2021. 11. 14. 10:19
Categoryboostcamp/AI tech prep
Tagpython
날짜
발행 여부

모듈과 패키지

모듈 : 작은 프로그램 조각들

패키지 : 모듈의 모음. 하나의 프로그램이다.

Module

Module.py 파일을 의미한다.

어떠한 module 을 import 하면 해당 module 의 모든 코드가 메모리로 로드된다.

module 내의 함수를 . 로 사용할 수 있다.

사용하려면 같은 디렉토리에 있어야 한다.

어떠한 module 을 import 하면 pycache 라는 폴더가 생겨서 module 을 pyc 로 컴파일 해둔다.

Module 의 namespace

  • 모듈을 호출할 때, 범위를 정하여 호출할 수 있다.
  • 원하는 것만 import 할 수 있는 것
  • import module 을 하면 모든 코드가 로딩 되기 때문에 이를 방지하기 위해 namespace 를 사용할 수 있다.
별칭을 써서 import 하는 것을 좋아한다. 독자 입장에서는 해당 코드가 어디에서 왔는지 밝혀주는 것이 명확하기 때문이다.

Built-in Module

  • import random : 난수 생성
  • import time : 시간 관련
  • import urllib.request : 웹 request 관련
매우 많은 파이썬 모듈을 다 알 수는 없다. 필요한 기능이 있다면 Google it. 모듈을 다 아는 것 보다 중요한 것은 검색 Keyword 를 아는 것

Package

이런 구조의 package 가 있으면,

from module_folder import test_module

print(test_module.test_func(2))

folder 안의 module 도 이렇게 import 할 수 있다.

Package 만들기

  • 처음에 내가 쓸, import 할 것들을 __all__ 에 리스트화 해두고 import 해 준다.
  • package 의 최 상단 폴더에 __main__.py 를 만들어서 해당 package 자체를 실행할 수 도 있다.
한 번 pycache 에 잘 생성되면, IDE 에서 자동완성을 시켜준다.

Package namespace

실제 프로젝트 (package)

Python Virtual Enviornment

  • 필요한 패키지만 설치하는 환경

대표적인 도구

  1. virtualenv + pip : 대표적인 가상환경 관리 도구
  1. conda : windows 에서 장점 / 훨씬 더 편하다.
프로그램을, 루프를 길게 돌릴 때, tqdm 을 사용하여 유용하게 현위치를 파악할 수 있다.
반응형

'boostcamp > AI tech prep' 카테고리의 다른 글

Pandas (2 장 완료해야함)  (0) 2021.12.12
Numerical Python - Numpy  (0) 2021.11.24
Pythonic Code  (0) 2021.11.09