Python/파이선과 친해지기

[Python] - Python과 친해지기-모듈의 사용

Python은 정말 어마어마한 사용자가 있다. 보통의 경우 우리가 "와 이런 함수를 만들어야겠다!"라고 생각한 건 이미 만들어져 있다고 보면 된다.  물론 이런 것들이 Python을 설치했을 때 기본적으로 들어와 있는 것들도 있지만, 인터넷에 올라가 있기에 다운로드하여야 되는 것들도 있다. 이렇게 정의되어 우리가 사용할 수 있는 친구들을 모듈(module)이라고 부르는데 이번 시간에는 모듈 사용으로 사전에 다른 곳에 정의된 함수를 사용하는 방법에 대해서 간단하게 알아보자


모듈의 사용법

우리를 도와줄 모듈은 os라는 모듈이다. 우리의 개발 콘솔에 다음과 같은 명령어를 입력하자

>> import os

os라는 모듈은 시스템의 작업을 도와주는 역할을 한다. (파일 시스템 작업이란 파일의 이동 / 복사 / 삭제 및 현재 작업 경로의 파악과 변경 등의 일을 말한다. os에 내장된 기능은 훨씬 많지만, 복잡한 기능은 오히려 다른 모듈이 잘 구현되어 있는 경우가 많다.)

 

모듈을 import 했으면 끝이다...

??? 이게?

맞다 사용하기만 하면된다. 파이선은 이렇게 간단하게 모듈을 사용할 수 있다. 

 

지금은 이해하기 어렵겠지만 os모듈에서 가져온 함수들은 os에 속한 함수를 사용한다는 의미로 앞에 os. 을 붙여야 한다.

다음의 예시를 보자

>> import os
>> os.getcwd()
'C:\\Users\\[사용자명]\\AppData\\Local\\Programs\\Python\\Python38'
## os.getcwd()는 현재 작업환경이 어디에 있는지를 문자열로 반환한다.
## 이 경로는 당연히 사용자마다 다르다.

>> from os import *
## 위와같은 방법으로 함수사용에 앞 os.을 생략할 수 있다. import 예약어는 "사용하겠다"이고 
## from 예약어는 당연히 "어디에서 가져온"을 의미하기에 명시적으로 from os 를 하면 함수명만으로 
## 아래처럼 사용할 수 있다. 모듈이 많아지면 많아질수록 헷갈리기에 선택적으로 잘 사용해야된다.
>> getcwd()
'C:\\Users\\[사용자명]\\AppData\\Local\\Programs\\Python\\Python38'

* 아래처럼 from으로 위치를 정해주면 os. 를 생략할 수 있다는 것도 알아두면 좋다.

 

이렇게 바로 가져올 수 있는 모듈은 Python이 설치될 때 기본적으로 들어있는 모듈(built-in module)들로 자신의 Python설치경로 Lib(라이브러리의 약자다) 폴더에 정의되어있다. 이 외에도 다른 사람들이 만든 모듈의 자신의 Python환경에서 사용할 수 있는 방법 또한 당연히 존재한다.

 

 

외부 라이브러리 가져오기 - pip

pip( Pip installs Packages or Pip Installs Python" 재밌는 이야기 해줄까요? pip는 약자는 pip가 들어가요 히히히히힣) 우리 환경에 패키지(일련의 코드나 폴더들의 집합체)를 설치하고 관리해주는 도구이다. 리눅스를 사용하는 사람이라면 Python버전의 apt-get이나 dpkg라고 생각해주시면 되겠다. pip에 관한 자세한 설명은 별도의 포스팅에서 하는 것을 하고(훌륭한 프로그램이라 사용법을 조금 집중해서 설명하고 싶다.) 바로 라이브러리를 한번 가져와보자

 

환경변수 설정 후 pip로 모듈 가져오기

* 환경변수 세팅이 끝나 있는 사람은 만 보면 된다.

* 본 설명은 Window를 기준으로 되어있다.

① [윈도 키] + [Pause Break]로 컴퓨터 설정으로 들어와서 [고급 시스템 설정] - 환경변수를 선택한다.

② 시스템 변수[S]의 PATH를 편집하여 [새로 만들기]로 설치한 Python경로의 scripts 폴더를 넣어주면 끝!

* 자신이 Python을 어따설치한지 모르는 분들을 위해 : Python 3.X 사용자는 사용자 폴더 아래 있는 appdata\local\programs 아래, Python 2.X 사용자는 C아래의 Programs Files(X86), anaconda사용자는 anaconda 설치경로 아래 anaconda3/bin에 pip가 있다.

 

③ 명령 프롬포트(cmd)를 실행하고 다음의 코드를 입력하자

* Python2 사용자의 경우 pip3가 아닌 pip를 사용하시면 되겠다.

C:\> pip3 install requests

에러 없이 정상적으로 설치가 되었다면 아까 확인한 Lib(라이브러리) 안 site-package폴더 아래 requests 관련된 패키지가 설치된 것을 확인할 수 있을 것이다. 이럴 것도 없이 Python 개발 콘솔에 import requests를 입력해서 에러가 없으면 끝이다.

 

 

모듈의 순서와 유효 범위

당연하게도 아무 데나 둔다고 import 할 수 있는 것은 아니다. Python은 다음의 순서로 import를 시도한다.

① sys.modules(이미 import 된 모듈을 dictionary로 관리)

② built-in modules(Python에서 제공하는 공식 라이브러리)

③ sys.path

 

①과 ③은 sys라는 모듈을 import 해서 확인할 수 있다.

>> import sys
>> sys.modules
## 보통 이거 조금 길다 예시는 생략한다.

>> sys.path
## 이건 환경변수 PATH값을 가져온다.

 

내가 만든 함수도 모듈로 물론 import 할 수 있다. 다음과 같은 a.py를 만들고 같은 폴더에서 b.py를 작업하고 있다고 하자

## a.py ##
def some_function() :
    print("a에서 실행된 파일입니다.")

 

코드 : 
## b.py ##
import a
a.some_function()

출력 :
"a에서 실행된 파일입니다."

이런 식으로 말이다. 


이번 시간에는 모듈의 사용방법을 알아보았다 이제 다른 사람이 작성한 훌륭한 코드들을 루팡 할 수 있게 되었다. 자유자재로 사용할 수 있게 된 것이다. Python에는 너무나도 훌륭한 모듈이 많기에 친해지기 강의가 끝나면 모듈별로 알아보는 module 집중탐구 시간을 가지고자 한다. 다음 시간에는 파일 입출력에 대해서 알아보도록 하자