이 단계에서는 Python 이 모듈 경로를 처리하는 방법과 모듈 파일의 위치를 결정하는 방법을 배우게 됩니다. 모듈 경로를 이해하는 것은 Python 프로젝트를 관리하고 구성하는 데 매우 중요합니다.
Python 은 모듈을 import 할 때 모듈을 검색하기 위해 디렉토리 목록을 사용합니다. 이 목록은 sys.path 변수에 저장됩니다. 이 경로를 보고 이해하는 방법을 살펴보겠습니다.
-
LabEx 환경에서 VS Code 편집기를 엽니다.
-
~/project 디렉토리에 module_path.py라는 새 파일을 생성합니다.
import sys
print(sys.path)
이 스크립트는 sys 모듈을 import 한 다음 sys.path의 값을 출력합니다. sys.path는 디렉토리 경로의 목록입니다.
-
터미널에서 다음 명령을 사용하여 스크립트를 실행합니다.
python module_path.py
터미널에 디렉토리 경로 목록이 출력됩니다. 이것이 Python 이 모듈을 검색하는 순서입니다. 출력 결과는 다음과 유사합니다.
['/home/labex/project', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages']
목록의 첫 번째 경로는 /home/labex/project로, 현재 작업 디렉토리입니다. 즉, Python 은 먼저 스크립트를 실행하는 디렉토리에서 모듈을 찾습니다.
다른 경로는 Python 라이브러리가 설치된 시스템 디렉토리입니다.
-
이제 간단한 모듈을 생성하고 Python 이 이를 찾는 방법을 살펴보겠습니다. ~/project 디렉토리에 my_module.py라는 새 파일을 생성합니다.
def my_function():
return "Hello from my_module!"
이 모듈은 my_function이라는 단일 함수를 정의합니다.
-
~/project 디렉토리에 main.py라는 다른 파일을 생성합니다.
import my_module
result = my_module.my_function()
print(result)
이 스크립트는 my_module 모듈을 import 하고 my_function 함수를 호출합니다.
-
main.py 스크립트를 실행합니다.
python main.py
다음 출력을 볼 수 있습니다.
Hello from my_module!
이는 my_module 모듈이 main.py 스크립트와 동일한 디렉토리에 있기 때문에 Python 이 my_module 모듈을 찾아서 import 할 수 있었음을 보여줍니다. main.py 스크립트는 sys.path에 있습니다.