Python 3에서 모듈을 가져오는 방법
소개
Python 프로그래밍 언어는 다양한 내장 함수와 함께 제공됩니다. 그 중에는 다음과 같은 몇 가지 일반적인 기능이 있습니다.
print()
식을 출력합니다abs()
숫자의 절대값을 반환 다른 데이터 유형을 정수로 변환하는 int()
len()
시퀀스 또는 컬렉션의 길이를 반환
그러나 이러한 내장 기능은 제한적이며 모듈을 사용하여 보다 정교한 프로그램을 만들 수 있습니다.
모듈은 Python 코드로 구성된 Python .py
파일입니다. 모든 Python 파일을 모듈로 참조할 수 있습니다. hello.py
라는 Python 파일에는 다른 Python 파일로 가져오거나 Python 명령줄 인터프리터에서 사용할 수 있는 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 인터프리터를 시작합니다.
- python
인터프리터 내에서 다음과 같이 import
문을 실행하여 주어진 모듈을 호출할 준비가 되었는지 확인할 수 있습니다.
- import math
수학
은 내장 모듈이므로 통역사는 피드백 없이 작업을 완료하고 프롬프트로 돌아갑니다. 즉, 수학
모듈을 사용하기 위해 아무것도 할 필요가 없습니다.
2D 플로팅 라이브러리 matplotlib
와 같이 설치하지 않았을 수 있는 모듈로 import
문을 실행해 보겠습니다.
- import matplotlib
matplotlib
가 설치되어 있지 않으면 다음과 같은 오류가 표시됩니다.
OutputImportError: No module named 'matplotlib'
CTRL + D
를 사용하여 Python 인터프리터를 비활성화한 다음 pip
를 사용하여 matplotlib
를 설치할 수 있습니다.
다음으로 pip
를 사용하여 matplotlib
모듈을 설치할 수 있습니다.
- pip install matplotlib
설치가 완료되면 import matplotlib
를 사용하여 Python 인터프리터에서 matplotlib
를 가져올 수 있으며 오류 없이 완료됩니다.
모듈 가져오기
모듈의 기능을 사용하려면 import
문으로 모듈을 가져와야 합니다.
import
문은 모듈 이름과 함께 import
키워드로 구성됩니다.
Python 파일에서 이것은 코드 상단, shebang 줄 또는 일반 주석 아래에 선언됩니다.
따라서 Python 프로그램 파일 my_rand_int.py
에서 random
모듈을 가져와서 다음과 같은 방식으로 난수를 생성합니다.
import random
모듈을 가져올 때 현재 프로그램에서 별도의 네임스페이스로 사용할 수 있습니다. 이는 [module].[function]
에서와 같이 점 표기법으로 함수를 참조해야 함을 의미합니다.
실제로는 random
모듈의 예에서 다음과 같은 함수처럼 보일 수 있습니다.
random.randint()
는 임의의 정수를 반환하는 함수를 호출하거나random.randrange()
지정된 범위에서 임의의 요소를 반환하는 함수를 호출합니다.
my_rand_int.py
프로그램 내에서 random
모듈의 함수를 호출하는 방법을 보여주기 위해 for
루프를 만들어 보겠습니다.
import random
for i in range(10):
print(random.randint(1, 25))
이 작은 프로그램은 먼저 첫 번째 줄에서 random
모듈을 가져온 다음 10개의 요소로 작업할 for
루프로 이동합니다. 루프 내에서 프로그램은 1에서 25(포함) 범위 내의 임의의 정수를 인쇄합니다. 정수 1
및 25
는 매개변수로 random.randint()
에 전달됩니다.
python my_rand_int.py
로 프로그램을 실행하면 출력으로 10개의 무작위 정수를 받게 됩니다. 이들은 무작위이기 때문에 프로그램을 실행할 때마다 다른 정수를 얻을 수 있지만 다음과 같이 생성됩니다.
Output6
9
1
14
3
22
10
1
15
9
정수는 1보다 작거나 25보다 높아서는 안 됩니다.
둘 이상의 모듈에서 함수를 사용하려면 여러 import
문을 추가하면 됩니다.
import random
import math
import random, math
와 같이 쉼표로 구분하여 여러 모듈을 가져오는 프로그램을 볼 수 있지만 이는 PEP 8 스타일 가이드와 일치하지 않습니다.
추가 모듈을 사용하려면 math
의 상수 pi
를 프로그램에 추가하고 출력되는 임의 정수의 수를 줄일 수 있습니다.
import random
import math
for i in range(5):
print(random.randint(1, 25))
print(math.pi)
이제 프로그램을 실행하면 다음과 같은 출력을 받게 됩니다. 출력의 마지막 줄은 파이 근사치입니다.
Output18
10
7
13
10
3.141592653589793
import
문을 사용하면 하나 이상의 모듈을 Python 프로그램으로 가져와 해당 모듈에서 구성된 정의를 사용할 수 있습니다.
from … 가져오기 사용
프로그램 네임스페이스 내의 모듈에서 항목을 참조하려면 from
… import
문을 사용할 수 있습니다. 이 방법으로 모듈을 가져올 때 점 표기법이 아닌 이름으로 함수를 참조할 수 있습니다.
이 구성에서 직접 참조할 정의를 지정할 수 있습니다.
다른 프로그램에서는 import
문이 별표(*
)를 와일드카드로 사용하여 모듈 내에 정의된 모든 항목에 대한 참조를 취하는 것을 볼 수 있지만 PEP에서는 권장하지 않습니다. 8.
먼저 random
모듈에서 특정 함수인 randint()
를 가져오는 것을 검토해 보겠습니다.
from random import randint
여기에서 먼저 from
키워드를 호출한 다음 모듈에 대해 random
을 호출합니다. 다음으로 import
키워드를 사용하고 사용하려는 특정 함수를 호출합니다.
이제 프로그램 내에서 이 함수를 구현할 때 더 이상 함수를 점 표기법으로 random.randint()
로 작성하지 않고 대신 randint()
만 작성할 것입니다.
from random import randint
for i in range(10):
print(randint(1, 25))
프로그램을 실행하면 이전에 받은 것과 유사한 출력을 받게 됩니다.
from
… import
구성을 사용하면 프로그램의 네임스페이스 내에서 모듈의 정의된 요소를 참조할 수 있으므로 점 표기법을 피할 수 있습니다.
앨리어싱 모듈
as
키워드를 사용하여 Python 내에서 모듈의 이름과 기능을 수정할 수 있습니다.
프로그램에서 이미 같은 이름을 사용했기 때문에 이름을 변경하고 싶을 수 있습니다. 가져온 다른 모듈도 해당 이름을 사용하거나 많이 사용하는 더 긴 이름을 축약하고 싶을 수 있습니다.
이 문의 구성은 다음과 같습니다.
import [module] as [another_name]
my_math.py
프로그램 파일에서 math
모듈의 이름을 수정해 보겠습니다. math
의 모듈 이름을 m
로 변경하여 축약하겠습니다. 수정된 프로그램은 다음과 같습니다.
import math as m
print(m.pi)
print(m.e)
프로그램 내에서 이제 pi
상수를 math.pi
가 아닌 m.pi
로 참조합니다.
일부 모듈의 경우 별칭을 사용하는 것이 일반적입니다. matplotlib.pyplot
모듈의 공식 문서에서는 plt
를 별칭으로 사용하도록 요구합니다.
import matplotlib.pyplot as plt
이를 통해 프로그래머는 plt.show()
에서와 같이 모듈 내에서 사용할 수 있는 함수에 짧은 단어 plt
를 추가할 수 있습니다. "matplotlib
자습서를 사용하여 Python 3에서 데이터를 플로팅하는 방법\에서 사용 중인 이 별칭 가져오기 문을 볼 수 있습니다.
결론
모듈을 가져올 때 Python에 내장되지 않은 함수를 호출할 수 있습니다. 일부 모듈은 Python의 일부로 설치되며 일부는 pip
를 통해 설치됩니다.
모듈을 사용하면 기존 코드를 활용할 때 프로그램을 더욱 견고하고 강력하게 만들 수 있습니다. 또한 우리 자신과 다른 프로그래머가 향후 프로그램에서 사용할 자체 모듈을 만들 수도 있습니다.