10. 라이브러리

Sam (토론 | 기여)님의 2021년 10월 22일 (금) 13:09 판

1 개요

파이썬 모듈이라고도 한다.(사용하는 용어가 애매하다. 일반적으로 라이브러리가 더 큰 개념이고, 라이브러리 안에 모듈이 있다고 이해하면 좋다.)

라이브러리, 패키지, 모듈. 어떻게 구분할 수 있을까?

서브루틴, 함수들의 모음.

1.1 정의

.py 확장자를 갖는 파일을 모듈이라 하며, 이들을 특정 디렉토리에 모아둔 것을 패키지라 부른다. 그리고 모듈 혹은 패키지를 라이브러리라 부르기도 한다.

  • 표준 라이브러리 : 설치 없이 import 가능한 것들.
  • 외부 라이브러리 : 설치한 후 사용.

1.2 현재 설치된 라이브러리 확인

현재 설치된 라이브러리는 help('modules')로 확인 가능. help('모듈명')으로 상세설명을 볼 수 있다.

1.3 모듈 설치 관련

pip을 사용한다.(Python Install Package의 약자.)

오픈소스 저장소에 있는 패키지를 관리하는 명령이다.

의도 방법 설명
pip 업데이트 python -m pip install --upgrade pip 프롬프트에서 진행한다.
모듈설치 pip install 패키지명 패키지를 설치하면 파이썬의 site-packages에 패키지의 디렉터리가 생긴다.

(가상환경의 Lib 안에 있다.)

버전을 지정해 설치 pip install 패키지명==x.x 과거 버전을 사용하고 싶을 때 특정 버전을 지정한다.
모듈업그레이드 pip install 패키지명 --upgrade
모듈 삭제 pip uninstall 패키지명 해당 라이브러리를 지운다.

1.4 이외

의도 방법 설명
설치된 라이브러리 표시 pip list 현재 가상환경에 설치된 라이브러리를 표시해준다.

2 사용법

함수의 이름이 같으면 기존 함수를 덮어쓴다.

라이브러리 내의 함수를 사용하려면 모듈명.함수명() 형태로 사용한다.(모듈 내에 정의되어 있음을 알려주기 위해.

2.1 모듈사용

의도 방법 설명
모듈 사용 import 모듈명 import는 모듈 자체를 불러오는 방식이다.

모듈 내의 함수는 다음과 같이 사용할 수 있다. 모듈명.함수명(변수)

import 패키지명.모듈명 형태로 필요한 하위요소만 불러올 수 있다.

form 모듈명 import * from은 모듈의 함수(메서드)만을 불러오는 방식이다.

모듈 내의 모든 것을 불러온다. 모듈 이름 없이 내용을 이름 그대로 사용할 수 있다. 모듈 내의 함수를 이름 그대로 사용할 수 있지만, 기존 함수와 충돌할 수 있다.

'*' 대신 함수명을 쓰면 해당 함수만 불러올 수 있다. ,로 구분하여 여러 개를 불러올 수도 있다.

from .경로명 import 모듈명 상대경로방식. '.'으로 현재경로 안에 있는 파일임을 알려준다.

'.'은 현재경로, '..'은 상위경로를 의미한다.

import 모듈명 as 바꿀이름명 모듈명이 너무 긴 경우, 모듈의 이름을 바꾸어 임포트 할 수 있다. 모듈의 이름이 길 때 짧게 줄여 사용하기 위함.

바꿀이름명.함수명(변수) 형태로 이용 가능.

모듈 주소 파악 모듈명을 쓰면 모듈의 경로를 알 수 있다.
모듈에 정의된 함수, 변수 파악 dir(모듈명)

3

자체변수 설명 예시
__name__ 파이썬 파일이 직접 실행된 것인지, 다른 파일에서 임포트 된 것인지 판단하기 위한 용도.

자체실행이라면 __main__이 바인딩되고, 임포트된 경우엔 파일명이 바인딩된다.

일반적으로 모듈을 테스트하기 위한 용도로, 임포트 되었을 때엔 호출되지 않게 할 때 쓰인다.

if __name__=="__main__":
    print("잘 되는지 테스트")

4 라이브러리 종류

목차가 너무 길어질 듯해 앞으론 여기에 추가해 넣도록 하겠다.

4.1 기능

사용 라이브러리 설명
성능 측정 timeit 어떤 방식이 성능에 유리할지 측정한다.
변수 저장 piclkle 특정 객체(변수)의 값을 바이너리로 저장한다.(추후에 다시 사용하기 위해)
사용 라이브러리 설명
금융데이터 차트 mplfinance 금융 관련 차트를 그린다.
이미지 관리 pillow 이미지 열기, 파일의 정보 따위를 열람할 수 있다.

4.2 엑셀 조작

엑셀조작을 다음 라이브러리들을 이용해 개별적으로 직접 사용해도 되지만, 보통은 판다스를 이용해 데이터를 다룬다.

라이브러리 설명
xlrd

필요와 특성에 따라 사용하면 됨.

5 패키지 만들기

디렉터리 안에 .py 파일을 넣는다.(디렉터리명이 패키지명이 된다.)

5.1 공통규약

5.1.1 파일 및 디렉토리

__init__.py 이 파일이 있으면 파이썬은 해당 디렉터리를 패키지로 인식한다.(없어도 인식을 하긴 하나, 모든 기능을 다 활용할 순 없음)
__pycache__ 디렉터리. (가상환경 패키지를 설치했다면 가상환경 디렉토리 안에 생기는 듯.)

패키지를 임포트하는 순간 생기는 디렉터리. 이 안에 .pyc 파일이 생긴다.(다음번에 임포트할 때 컴파일 작업을 생략해 속도를 올리기 위함.)

5.1.2 메서드

__file__ 임포트한 모듈의 실제 파일 위치가 담겨있다.

6

파이썬 버전에 따라 지원하지 않는 라이브러리가 있다. 그리고 OS에 따라 지원하지 않는 라이브러리가 있다. 이런 경우엔.... 진짜 해결하기 어려우니... 그냥 맘 접고 버전을 되돌리거나 다른 라이브러리를 사용하는 편이 좋다.

7 문제해결

7.1 ERROR: Cannot uninstall 'pycurl'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

pycurl 대신 다른 패키지명에도 해당하는 오류이다. 일반적으로 OS를 통해 따로 설치했을 경우에 나오는 듯한데, pip install --ignore-installed pycurl 처럼 ignore-installed 옵션을 주면 된다.