(Python 4-2강) Module and Project

210804

파이썬은 대부분의 라이브러리가 이미 다른 사용자에 의해 구현되어 있다!

모듈

  • 어떤 대상의 부분 혹은 조각을 모듈이라고 한다

  • 프로그램에서는 작은 프로그램 조각들과 모듈들을 모아서 하나의 큰 프로그램을 개발한다

  • 이미 파이썬 내부에도 많은 모듈이 있다

    • Built In Module

패키지

  • 모듈을 모아놓은 단위, 하나의 프로그램

파이썬에서 모듈은 py 파일을 의미한다. 그리고 import문을 사용해서 module을 호출한다.

  • import를 할 때는 기본적으로 같은 폴더에 있어야 한다.

__pycache__ 가 뭐야?

파이썬 인터프리터가 미리 기계어로 번역한 것. 프로그램을 로딩할 때 빠르게 할 수 있도록 한다.

모듈을 호출할 때는 범위를 정할 수 있다. 일반적으로 py 파일을 import 하면 py 파일안에 모든 코드가 다 로딩이 된다.

  • 모든 코드를 로딩하므로 시간이 걸릴 수도 있다

  • 불러오려는 함수 또는 클래스를 매번 작성하기 힘들다.

  • 실행되면 안되는 코드까지 실행될 수 있다

    • 그래서 if __name__ == __main__ 을 쓰곤 한다.

이 때 사용하는 것이 namespace!

  • Alias 설정하기 - 모듈명을 별칭으로 쓰기

import fah_converter as fah
  • 모듈에서 특정 함수 또는 클래스만 호출하기

from fah_converter import covert_c_to_f
  • 모듈에서 모든 함수 또는 클래스를 호출하기

from fah_converter import *

Built-in Module

  • random, time, urllib.request 등이 있다.

수많은 파이썬 모듈을 어떻게 활용할까?

  • 구글링

  • 모듈을 import 하고 구글링 또는 Help

  • 공식 문서

패키지

하나의 대형 프로젝트를 만드는 코드의 묶음이다. 다양한 모듈들이 모여있는 폴더 단위로 존재한다.

__init__, __main__ 등 키워드 파일명이 사용되며 다양한 오픈소스들이 패키지로 관리된다.

  • 3.3 버전 이전에는 __init__ 파일이 있어야 패키지로 간주되었다.

  • 지금은 없어도 되지만 많이들 쓰는 편

package namespace

  • package 내에서 다른 폴더의 모듈을 부를 때 상대 참조로 호출하는 방법

# 절대참조
from game.graphic.render import render_test()

# . 현재디렉토리기준
from .render import render_test()

# .. 부모 디렉토리 기준
from ..sound.echo import echo_test()

Python Virtual Environment

virtualenv + pip

  • 가장 대표적인 가상환경 관리 도구

  • 레퍼런스 + 패키지 개수

conda

  • 사용 가상환경도구

  • miniconda 기본도구

  • 설치가 용이해서 윈도우에서 장점을 가진다

콘다 가상환경

# 만들기
conda create -n my project python=3.8

# 호출
conda activate my_project

# 해제
conda deactivate

# 패키지 설치
conda install <패키지명>

Last updated

Was this helpful?