파이썬 모듈: 생성, 임포트, sys.path, PYTHONPATH 환경 변수

파이썬 모듈: 생성, 임포트, sys.path, PYTHONPATH 환경 변수

파이썬의 모듈은 코드의 재사용성을 높이고, 프로그램을 더 효율적으로 관리할 수 있게 돕는 중요한 요소입니다. 이번 글에서는 모듈의 기본적인 개념과 생성, 임포트 방법, 그리고 ‘if name == “main”‘의 의미와 사용법, 그리고 모듈 임포트에 도움이 되는 sys.path와 PYTHONPATH 환경 변수 설정에 대해 알아보겠습니다.

목차

  1. 모듈이란?
  2. 모듈 생성하기
  3. 모듈 임포트하기
  4. 다른 디렉토리의 모듈 임포트하기 (sys.path.append)
  5. PYTHONPATH 환경 변수 사용하기
  6. ‘if __name__ == “__main__”:’의 의미

모듈이란?

모듈은 파이썬 정의와 문장들을 담고 있는 파일입니다. 함수나 변수, 클래스들을 모아 놓은 파이썬 파일입니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.

모듈 생성하기

모듈을 생성하는 것은 매우 간단합니다. 모듈이란 특별한 것이 아닌, 파이썬 코드를 담고 있는 ‘.py’ 확장자를 가진 파일입니다. 즉, 일반적으로 파이썬 코드를 작성하는 ‘.py’ 파일 자체가 모듈이 될 수 있습니다. 예를 들어, 아래와 같은 함수를 가진 파이썬 파일(my_module.py)을 생성해 보겠습니다.

# my_module.py
def my_function():
    print("This is my module!")

모듈 임포트하기

모듈을 생성한 후에는, ‘import’ 키워드를 사용하여 해당 모듈을 임포트 할 수 있습니다. 아래와 같이 사용할 수 있습니다.

import my_module

my_module.my_function()  # 출력: This is my module!

▶ 이런 식으로 ‘my_module’이라는 모듈을 임포트 하려면, 해당 모듈은 현재 작업 중인 파이썬 스크립트와 동일한 디렉토리에 위치해야 합니다. 그렇지 않으면, 파이썬은 해당 모듈을 찾을 수 없습니다. 그렇다면 만약 모듈이 다른 디렉토리에 있다면 어떻게 해야 할까요?

▶ 이럴 때는 ‘sys.path.append’ 메서드나 ‘PYTHONPATH’ 환경 변수를 사용하여 파이썬에게 추가적인 모듈을 찾을 수 있는 디렉토리를 알려줄 수 있습니다.

다른 디렉토리의 모듈 임포트하기

파이썬에서 모듈을 찾는 위치는 sys.path라는 리스트에 저장되어 있습니다. 이 리스트에는 문자열 형태의 파일 경로들이 포함되어 있고, 파이썬은 이 경로들을 차례대로 검색하여 모듈을 찾습니다.

따라서, 다른 디렉토리에 있는 모듈을 임포트 하려면 해당 디렉토리의 경로를 sys.path에 추가해야 합니다. 이는 sys.path.append() 함수를 사용하여 수행할 수 있습니다.

예를 들어, ‘C:bluesharepy_modules’ 디렉토리에 있는 모듈을 임포트 하려면 다음과 같이 할 수 있습니다.

import sys
sys.path.append('C:/blueshare/py_modules')

import my_module

my_module.my_function()

▶ sys.path.append는 현재 실행 중인 Python 인터프리터 세션에만 적용됩니다. 이는 sys.path는 현재 인터프리터 세션에서만 유효한 경로 정보를 가지고 있기 때문입니다. 즉, sys.path에 경로를 추가하면 그 변경 사항은 현재의 인터프리터 세션에서만 유효하며, 인터프리터를 종료하면 그 정보는 사라집니다. 그러므로, 다른 Python 스크립트나 새로 시작하는 인터프리터 세션에서는 이전에 추가했던 경로 정보가 기억되지 않으므로, 필요한 경로는 각 스크립트나 세션마다 sys.path.append를 통해 다시 추가해주어야 합니다.

▶ 반면에, PYTHONPATH 환경 변수에 디렉토리를 추가하면, 그 디렉토리는 모든 Python 인터프리터 세션에서 접근할 수 있습니다. 이는 환경 변수가 시스템 레벨에서 설정되며, 모든 Python 인터프리터가 이 환경 변수를 참조하기 때문입니다. 따라서 PYTHONPATH를 사용하면 각각의 스크립트나 세션에서 sys.path.append를 호출할 필요가 없습니다.

PYTHONPATH 환경 변수 사용하기

이 환경 변수는 파이썬이 모듈을 찾을 수 있는 추가적인 디렉토리를 정의합니다.

C:>set PYTHONPATH=C:bluesharepy_modules

※ 맥이나 유닉스 환경에서는 set 대신 export 명령을 사용해야 한다.

이제 이 디렉토리에 있는 모듈을 직접 임포트 할 수 있습니다. 이 방법들을 통해, 파이썬 모듈을 더 유연하게 관리하고 활용할 수 있게 됩니다.

import my_module

my_module.my_function()  # 출력: This is my module!

if __name__ == “__main__”의 의미

파이썬에서 ‘if __name__ == “__main__”:’은 현재 스크립트 파일이 프로그램의 시작점이 맞는지 판단하는 작업입니다. 이 조건문 아래에 작성된 코드는 ‘직접’ 실행될 때만 실행되며, 모듈로 임포트 될 경우에는 실행되지 않습니다. 이러한 방법은 모듈을 테스트하기 위한 코드를 작성하거나, 모듈이 독립적으로 사용될 수 있게 하기 위한 방법입니다. 아래 예시를 보겠습니다.

# my_module.py
def my_function():
    print("This is my module!")

if __name__ == "__main__":
    my_function()

참고 자료


이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!

위로 스크롤