패키지, 라이브러리

이찬·2023년 6월 17일

Python

목록 보기
9/17
post-thumbnail


하나의 모듈이 독립적으로 제공되기도 하지만 다른 모듈과 함께 하나의 모음집으로 제공되기도 한다. 모음집의 크기와 용도에 따라 패키지, 라이브러리, 프레임워크 등 다양한 이름으로 불린다.

패키지package
패키지는 모듈을 모아놓은 디렉토리(폴더)이며, init.py 모듈을 포함한다. 패키지 안에 하위 패키지가 포함될 수 있으며, 각 하위 패키지 모두 init.py 모듈을 포함한다. init.py 모듈은 해당 패키지가 사용될 때 필요한 기본 설정이 저장되어 있고 자동 실행된다. 아래 그림이 전형적인 패키지 구조를 보여준다.

  • 도트(.)을 사용하여 파이썬 모듈을 계층적으로 관리할 수 있게 해준다. 예를 들어 모듈 이름이 A.B인 경우에 A는 패키지 이름이 되고 B는 A 패키지의 B모듈이 된다.
  • 디렉터리와 파이썬 모듈로 이루어진다.
  • 패키지 구조로 모듈을 만들면 다른 모듈과 이름이 겹치더라도 더 안전하게 사용할 수 있다.

도트 연산자(.)를 사용해서 import a.b.c처럼 import할 때 가장 마지막 항목인 c는 반드시 모듈 또는 패키지여야만 한다.

init.py의 용도

init.py 파일은 해당 디렉터리가 패키지의 일부임을 알려주는 역할을 한다.
패키지에 포함된 디렉터리에 init.py 파일이 없다면 패키지로 인식되지 않는다.

# *을 사용하여 render.py파일 안의 render_test 함수를 사용해 보시오
__all__ = ['render']
from game.graphic import *
render.render_test()

라이브러리

라이브러리library는 모듈, 패키지 등 재사용이 가능한 코드의 모음집을 통칭헤서 부르는 이름이다. 패키지가 하위 패키지를 포함하기에 라이브러리로 불리기도 하지만 라이브러리는 여러 개의 패키지로 이루어진 모음집으로 하나의 패키지와 구분된다. 파이썬 표준 라이브러리에서 기본으로 제공되는 패키지와 모듈을 확인할 수 있다.

또한 게임 프로그래밍에 사용되는 Pygame, 데이터 분석에 필수인 Numpy와 Pandas, 웹에서 필요한 데이터 수집에 유용한 BeautifulSoup, 머신러닝/딥러닝 분야의 Tensorflow, Keras, PyTorch 등이 대표적인 제3자 파이썬 라이브러리다. 제3자 라이브러린란 파이썬 공식 홈페이지가 아닌 다른 방식으로 제공되는 라이브러리를 가리킨다.

프레임워크

프레임워크framework는 라이브러리 보다 포괄적인 개념이다. 라이브러리가 도구 모음집만 제공하는 반면에 프레임워크는 라이브러리와 함께 라이브러리를 쉽게 적용할 수 있는 틀frame과 아키텍처architecture를 함께 제공한다.

예를 들어, 플라스크Flask 프레임워크는 웹서버 개발에 적절한 틀과 구조를, 장고Django 프레임워크는 웹 어플리케이션 구현에 최적인 틀과 구조를 제공한다. 사용자는 프레임워크가 제공하는 틀과 구조에 맞춰 적절한 코드를 작성하면 원하는 결과를 쉽고 빠르게 구현할 수 있다.

pip 파이썬 패키지 관리자

  • Pip Installs Packages의 약자
  • Python 패키지를 설치하고 관리하는 패키지 매니저(Package Manager)

Python Package Index

pip를 이해하려면 먼저 Python Package Index라는 것이 뭔지 알아야 합니다. 이름처럼, 수많은 패키지들이 저장돼있는 곳이란 걸 알 수 있죠? 이곳의 이름을 줄여서 PyPI라고 부르기도 합니다.

https://pypi.org/
이 사이트에서 라이브러리를 일일히 다운로드 해야 하는데, 이런 작업들을 명령어로 빠르게 수행하고 간편하게 관리할 수 있도록 pip라는 파이썬 패키지 관리 시스템이 있는 것이다.

렇게 명령 프롬프트를 통해서 pip install numpy라고 작성하면 알아서 최신 버전으로 다운로드하여 설치해준다.


이렇게 주피터 노트북 셀에서, 명령 프롬프트와 동일하게 pip install numpy라고 적은 뒤, shift + enter를 누르면 설치가 진행됩니다.

하나의 셀에서 다수의 pip 명령어를 수행하고 싶으면 어떻게 할까요?
그냥 pip 명령어를 여러 번 적으면 오류가 나고,
1줄씩 순차적으로 실행하라는 의미인 “!”(느낌표)를 앞에 붙여서 적으면 오류 없이 순차적 진행

profile
Kyunghee univ. IE 21

0개의 댓글