Python 3에서 모듈 가져오는 방법

소개

파이썬 프로그래밍 언어에는 다양한 내장 함수가 있습니다. 이 중 몇 가지 일반적인 함수는 다음과 같습니다:

  • print()는 표현식을 출력합니다.
  • abs()는 숫자의 절대값을 반환합니다.
  • int()는 다른 데이터 유형을 정수로 변환합니다.
  • len()은 시퀀스나 컬렉션의 길이를 반환합니다.

그러나 이러한 내장 함수는 제한적이며, 보다 복잡한 프로그램을 작성하기 위해 모듈을 사용할 수 있습니다.

모듈은 파이썬 .py 파일로 이루어진 Python 코드입니다. 모든 파이썬 파일은 모듈로 참조될 수 있습니다. hello.py라는 파이썬 파일은 hello라는 모듈 이름을 가집니다. 이 모듈은 다른 파이썬 파일에 가져오거나 파이썬 명령 줄 해석기에서 사용할 수 있습니다. 자체 모듈을 작성하는 방법은 Python 3에서 모듈 작성 방법을 읽어보세요.

모듈은 다른 Python .py 파일이나 Python 명령 줄 해석기를 통해 참조할 수 있는 함수, 클래스 및 변수를 정의할 수 있습니다.

Python에서 모듈에 접근하려면 import 문을 사용합니다. 이렇게 하면 모듈의 코드가 실행되며, 현재 파일에서 이를 사용할 수 있도록 정의의 범위가 유지됩니다.

예를 들어 Python이 hello라는 모듈을 가져올 때 인터프리터는 먼저 내장된 hello라는 모듈을 찾습니다. 내장된 모듈이 없으면 Python 인터프리터는 sys.path 변수에서 받은 디렉터리 목록에서 hello.py라는 파일을 검색합니다.

이 자습서에서는 모듈을 확인하고 설치하는 방법, 모듈을 가져오는 방법 및 모듈에 별칭을 지정하는 방법에 대해 안내합니다.

전제 조건

컴퓨터 또는 서버에 Python 3를 설치하고 프로그래밍 환경을 설정해야합니다. 프로그래밍 환경을 설정하지 않았다면, 운영 체제(Ubuntu, CentOS, Debian 등)에 적합한 로컬 프로그래밍 환경 또는 서버의 프로그래밍 환경을 설치하고 설정하는 가이드를 참조하십시오.

모듈 확인 및 설치

시스템 기능에 액세스하거나 표준화된 솔루션을 제공하는 많은 모듈이 내장되어 있는 Python 표준 라이브러리가 있습니다. Python 표준 라이브러리는 모든 Python 설치의 일부입니다.

정보: 이 자습서의 예제 코드를 따라하려면, python3 명령을 실행하여 로컬 시스템에서 Python 대화형 셸을 엽니다. 그런 다음 >>> 프롬프트 뒤에 예제를 추가하여 복사, 붙여 넣거나 편집할 수 있습니다.

이러한 Python 모듈이 사용할 준비가 되어 있는지 확인하려면 로컬 Python 3 프로그래밍 환경 또는 서버 기반 프로그래밍 환경으로 들어가서 다음과 같이 명령 줄에서 Python 인터프리터를 시작하십시오:

  1. python

인터프리터 내부에서 주어진 모듈이 호출될 준비가 되어 있는지 확인하기 위해 import 문을 실행할 수 있습니다. 다음과 같이:

  1. import math

math는 내장 모듈이므로 인터프리터가 작업을 완료하고 피드백 없이 프롬프트로 돌아갈 것입니다. 이는 math 모듈을 사용하기 위해 추가 작업을 할 필요가 없음을 의미합니다.

matplotlib과 같이 설치되지 않은 모듈로 import 문을 실행해 보겠습니다:

  1. import matplotlib

matplotlib이 설치되어 있지 않으면 다음과 같은 오류가 발생합니다:

Output
ImportError: No module named 'matplotlib'

CTRL + D로 Python 인터프리터를 비활성화한 다음 pip를 사용하여 matplotlib을 설치할 수 있습니다.

다음으로 pip를 사용하여 matplotlib 모듈을 설치할 수 있습니다:

  1. pip install matplotlib

설치가 완료되면 Python 인터프리터에서 import matplotlib을 사용하여 matplotlib을 가져올 수 있으며 오류 없이 완료됩니다.

모듈 가져오기

모듈의 함수를 사용하려면 import 문과 함께 모듈을 가져와야 합니다.

import 문은 import 키워드와 모듈의 이름으로 구성됩니다.

파이썬 파일에서는 이것이 코드 상단에 선언될 것입니다. shebang 라인이나 일반적인 주석 아래에 위치합니다.

따라서 Python 프로그램 파일 my_rand_int.py에서는 다음과 같이 random 모듈을 가져와서 무작위 숫자를 생성할 것입니다:

my_rand_int.py
import random

모듈을 가져오면 현재 프로그램에서 별도의 네임스페이스로 사용할 수 있게 됩니다. 이는 함수를 점 표기법으로 참조해야 함을 의미합니다. 즉, [module].[function].

실제로 random 모듈의 예제로, 이는 다음과 같은 함수로 보일 수 있습니다:

  • random.randint() 이라는 함수를 호출하여 무작위 정수를 반환하거나
  • random.randrange() 라는 함수를 호출하여 지정된 범위에서 무작위 요소를 반환합니다.

for 루프를 만들어서 my_rand_int.py 프로그램 내에서 random 모듈의 함수를 어떻게 호출할지 살펴보겠습니다:

my_rand_int.py
import random


for i in range(10):
    print(random.randint(1, 25))

이 작은 프로그램은 먼저 첫 번째 줄에서 random 모듈을 가져온 다음, 10개의 요소와 작업할 for 루프로 이동합니다. 루프 내에서 프로그램은 1부터 25까지의 범위 내에서 무작위 정수를 출력할 것입니다 (포함). 정수 125random.randint()의 매개변수로 전달됩니다.

프로그램을 python my_rand_int.py로 실행하면 출력으로 10개의 무작위 정수를 받게됩니다. 이들은 무작위이므로 프로그램을 실행할 때마다 다른 정수를 받게 될 것입니다. 그러나 다음과 같은 형태로 생성됩니다:

Output
6 9 1 14 3 22 10 1 15 9

정수는 1 미만이거나 25를 초과해서는 안 됩니다.

하나 이상의 모듈에서 함수를 사용하려면 여러 import 문을 추가할 수 있습니다:

my_rand_int.py
import random
import math

쉼표로 구분된 여러 모듈을 가져오는 프로그램을 볼 수 있지만, 이는 PEP 8 스타일 가이드와 일치하지 않습니다.

추가 모듈을 사용하기 위해, 프로그램에 math에서 상수 pi를 추가하고 출력되는 무작위 정수의 개수를 줄일 수 있습니다:

my_rand_int.py
import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

이제 프로그램을 실행하면 다음과 같은 출력을 받게 되며, 마지막 줄에는 파이의 근사치가 표시됩니다:

Output
18 10 7 13 10 3.141592653589793

import 문을 사용하면 Python 프로그램에 하나 이상의 모듈을 가져와서 해당 모듈에서 생성된 정의를 사용할 수 있습니다.

fromimport 사용하기

프로그램의 네임스페이스 내에서 모듈 항목을 참조하려면 fromimport 문을 사용할 수 있습니다. 이 방식으로 모듈을 가져오면 점 표기법(dot notation) 대신에 이름으로 함수를 참조할 수 있습니다.

이 구조에서 직접 참조할 정의를 지정할 수 있습니다.

다른 프로그램에서는 모듈 내에서 정의된 모든 것에 대한 참조를 별표(*)를 와일드카드로 사용하여 가져오는 import 문을 볼 수 있지만, 이는 PEP 8에서 권장되지 않습니다.

먼저, random 모듈에서 특정 함수인 randint()를 가져오는 것부터 살펴보겠습니다:

my_rand_int.py
from random import randint

여기서는 먼저 from 키워드를 호출한 다음 모듈에 random을 사용합니다. 그 다음에는 import 키워드를 사용하여 사용하려는 특정 함수를 호출합니다.

이제 이 함수를 프로그램 내에서 구현할 때, random.randint()와 같이 점 표기법으로 함수를 작성하는 것이 아니라 randint()만 작성하면 됩니다:

my_rand_int.py
from random import randint


for i in range(10):
    print(randint(1, 25))

프로그램을 실행하면 이전에 받았던 것과 유사한 출력을 받게 됩니다.

fromimport 구조를 사용하면 프로그램의 네임스페이스 내에서 모듈의 정의된 요소를 참조할 수 있으므로 점 표기법을 피할 수 있습니다.

모듈 별칭 지정

파이썬 내에서 as 키워드를 사용하여 모듈 및 해당 기능의 이름을 수정하는 것이 가능합니다.

프로그램에서 이미 동일한 이름을 다른 용도로 사용했거나, 가져온 다른 모듈도 해당 이름을 사용하고 있거나, 자주 사용하는 긴 이름을 줄이고자 할 수 있기 때문에 이름을 변경하고 싶을 수 있습니다.

이 문장의 구조는 다음과 같습니다:

import [module] as [another_name]

my_math.py 프로그램 파일에서 math 모듈의 이름을 수정해보겠습니다. 우리는 math 모듈의 이름을 m으로 바꿔서 약자로 만들겠습니다. 수정된 프로그램은 다음과 같이 보일 것입니다:

my_math.py
import math as m


print(m.pi)
print(m.e)

프로그램 내에서 이제 pi 상수를 m.pi로 참조합니다.

일부 모듈에서는 별칭을 사용하는 것이 일반적입니다. matplotlib.pyplot 모듈의 공식 문서에서는 plt를 별칭으로 사용하도록 명시하고 있습니다:

import matplotlib.pyplot as plt

이는 프로그래머가 모듈 내에서 사용 가능한 함수에 짧은 단어 plt를 추가할 수 있도록 해줍니다. 예를 들어 plt.show()와 같이 사용할 수 있습니다. 이 별칭 가져오기 문장은 우리의 “matplotlib을 사용한 Python 3에서 데이터 플롯하기” 튜토리얼에서 사용되었습니다.

결론

모듈을 가져오면 Python에 내장되어 있지 않은 함수를 호출할 수 있습니다. 일부 모듈은 Python의 일부로 설치되고, 일부는 pip를 통해 설치합니다.

모듈을 활용하면 기존 코드를 활용하여 프로그램을 더 견고하고 강력하게 만들 수 있습니다. 또한 미래 프로그램에서 사용하기 위해 자체 모듈을 만들 수도 있습니다.

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3