Python의 전체 파일 경로에서 모듈 가져 오기

Najwa Riyaz 2023년1월30일
  1. Python 3.5 이상에서 전체 파일 경로가있는 모듈 가져 오기
  2. Python 3.3 및 3.4에서 전체 파일 경로가있는 모듈 가져 오기
  3. Python 2에서 전체 파일 경로가있는 모듈 가져 오기
Python의 전체 파일 경로에서 모듈 가져 오기

지정된 경로에서 Python 파일을 가져 오려면 Python 버전을 기반으로하는 Python 라이브러리를 사용합니다. 이 기사에서는 Python에서 모듈에 대한 전체 경로가 지정된 모듈을 가져 오는 방법을 설명합니다.

Python 버전을 기반으로 다음 라이브러리의 함수를 사용하여 모듈을 가져옵니다.

  1. Python 3.5 이상인 경우importlib.util을 가져옵니다.
  2. Python 3.3 및 3.4의 경우importlib.machinery,SourceFileLoader를 가져옵니다.
  3. Python 2의 경우imp를 가져옵니다.

시작하기 전에 예제를 시연 할 수 있도록 파일 설정을 준비하십시오.

  • addmodule.py파일에서 다음 코드를 언급합니다.
def printingstatement():
    print("From addmodule.py")
  • 폴더 안에addmodule.py를 넣습니다. 아래 예에서는c:\\Users\\Rexjohn\\Folder-1\\안에 있습니다.

Python 3.5 이상에서 전체 파일 경로가있는 모듈 가져 오기

Python 3.5 이상에서는importlib.util라이브러리의 함수를 사용하여 모듈을 가져옵니다.

import importlib.util

MODULE_PATH = "c:\\Users\\Rexjohn\\Folder-1\\addmodule.py"
MODULE_NAME = "addmodule"

spec = importlib.util.spec_from_file_location(MODULE_NAME, MODULE_PATH)
modulevar = importlib.util.module_from_spec(spec)
spec.loader.exec_module(modulevar)

modulevar.printingstatement()

여기에서importlib.util라이브러리의 다음 함수를 사용합니다.

  • spec_from_file_location(MODULE_NAME, MODULE_PATH). MODULE_PATH에서 모듈 이름MODULE_NAME의 전체 파일 경로를 언급하십시오.
  • module_from_spec(spec)
  • exec_module(modulevar)

출력:

From addmodule.py

Python 3.3 및 3.4에서 전체 파일 경로가있는 모듈 가져 오기

Python 3.3 및 3.4로 작업하는 경우importlib.machinery,SourceFileLoader라이브러리의 함수를 사용하여 모듈을 가져올 수 있습니다.

from importlib.machinery import SourceFileLoader

MODULE_PATH = "c:\\Users\\Rexjohn\\Folder-1\\addmodule.py"
MODULE_NAME = "addmodule"

modulevar = SourceFileLoader(MODULE_NAME, MODULE_PATH).load_module()

modulevar.printingstatement()

여기에서 언급하여importlib.machinery,SourceFileLoader라이브러리의 다음 함수를 사용합니다.

SourceFileLoader(MODULE_NAME, MODULE_PATH).load_module()

출력:

From addmodule.py

Python 2에서 전체 파일 경로가있는 모듈 가져 오기

Python 2의 경우imp라이브러리의 함수를 사용하여 모듈을 가져옵니다.

import imp

MODULE_PATH = "c:\\Users\\Rexjohn\\Folder-1\\addmodule.py"
MODULE_NAME = "addmodule"

modulevar = imp.load_source(MODULE_NAME, MODULE_PATH)

modulevar.printingstatement()

여기에서imp라이브러리의 다음 함수를 사용합니다.

load_source(MODULE_NAME, MODULE_PATH)

출력:

From addmodule.py

관련 문장 - Python Import