본문 바로가기

Study doc./Python

[Python] 모듈 사용법, pip의 원리

지난 포스팅에서 비슷한 코드의 작성을 피하기 위해 클래스가 필요하다고 했습니다.

오늘은 이 클래스를 파일로 저장하고, 필요할 때마다 호출해서 사용하는 방법을 공부해보겠습니다.

 


 

클래스와 함수들을 모아둔 파일(.py)모듈이라고 합니다.

코딩을 시작하기 전 import numpy as np 혹은 import pandas as pd 를 작성해본 적 있으시죠?

이게 쉽게 말하면 내 컴퓨터에 저장되어 있는 numpy.py 라는 파일과 pandas.py 라는 파일을 호출하는 것입니다.

 

나는 컴퓨터에 그런 파일을 저장한 적이 없으시다구요?

numpypandas의 경우에는 아주 기본적인 모듈이기 때문에 파이썬을 설치하면 자동으로 컴퓨터 저장됩니다.

그래서 따로 저장할 필요가 없었던거죠.

 

새로운 모듈의 경우에는 별도로 설치를 해줘야하는데, 보통 인터넷에서 파일을 다운받는 형식이 아닌, 커맨드 창에서 pip을 통해 손쉽게 설치했습니다.

이제 pip을 할때 어떤 일이 일어나는지 감이 오시나요?

내 컴퓨터의 어딘가에 파일을 다운받고 있었습니다!!

 

여기서 중요한 점은 사용하고자 하는 모듈이 내 파이썬 라이브러리에 존재해야 한다는 겁니다.

(일반적으로 pip을 통해 다운받은 모듈은 자동으로 파이썬 라이브러리에 저장되지만, 간혹 파일 경로를 지정해서 다운받는 경우가 있기 때문에 기억해야 합니다)

즉 바탕화면에 모듈을 저장해두고는 import 할 수 없다는 말입니다.

따라서 직접 내 파이썬 라이브러리에 모듈을 저장하거나, 파이썬 라이브러리 경로를 추가해줘야 합니다.

 

1) 내 파이썬 라이브러리에 저장

sys.path 를 통해 내 파이썬 라이브러리 경로를 확인하고, 그 경로에 맞는 곳에 저장

 

import sys
sys.path

 

 

2) 파이썬 라이브러리 경로 추가

sys.path.append(“추가하고자 하는 경로”) 를 통해 경로 추가

 

sys.path.append('C:/anaconda3/lib')

 

모듈을 설치했다면 코드를 통해 호출해야합니다.

간단히 import 만을 가지고 호출할 수 있고, from을 사용해서 특정 함수만을 호출할 수도 있습니다.

 

예를 들어 from sklearn.metrics import mean_square_error 이라고 하면, sklearn 모듈의 metrics 클래스의 mean_square_error 함수를 사용하겠다! 라는 말이 됩니다.

이렇게 특정 함수만을 호출한 경우에는, 함수를 사용할 때 모듈을 따로 쓰지 않아도 됩니다.

(ex. sklearn.metrics.mean_square_error(3,4) – X / mean_square_error(3,4) – O)

 


 

정리

모듈과 클래스에 대해서 공부하니 지금까지 썼던 코드의 원리를 깨닫게 되었습니다.

예를 들어 새로운 패키지를 사용하기 위해서는 커맨드 창에서 pip을 이용해 설치했습니다.

 

pip install seaborn

이렇게 말이죠!

설치가 완료되면 에디터로 돌아와서 import seaborn 을 출력해서 사용했습니다.

 

이 과정이 사실은 seaborn이라는 이름의 모듈(파일)을 커맨드창을 이용해서 내 컴퓨터의 파이썬 라이브러리에 저장했던 것입니다(sys 모듈을 이용해서 확인가능).

그리고 그 파일 안에 있는 내장 함수, 클래스를 사용하기 위해 seabornimport 한 것이지요.

 

이 원리라면 저도 함수와 클래스를 생성해서 저만의 모듈을 만들어 사용할 수도 있겠네요!

코딩 실력이 발전하면 제 이름에서 따온 모듈을 만들어서 배포해보겠습니다!!