복붙노트

[PYTHON] imp를 사용하여 동적으로 모듈 가져 오기

PYTHON

imp를 사용하여 동적으로 모듈 가져 오기

동적으로 다른 디렉토리에서 모듈을 가져 오려고합니다. 나는이 질문에 답을하고있다. foo라는 디렉토리에 bar라는 이름의 모듈이 있습니다. 주 스크립트는 부모 디렉토리에서 foo로 실행됩니다.

여기까지 내 테스트 스크립트 (부모 디렉터리에서 foo 실행할) 코드가 있습니다.

#test.py
import imp

mod = imp.load_source("bar","./foo")

bar.py에 대한 코드

#bar.py
class bar:

    def __init__(self):
          print "HELLO WORLD"

하지만 test.py를 실행하면이 오류가 발생합니다.

Traceback (most recent call last):
  File "C:\Documents and Settings\user\Desktop\RBR\test.py", line 3, in <module>
    mod = imp.load_source("bar","./foo")
IOError: [Errno 13] Permission denied

해결법

  1. ==============================

    1.imp.load_source는 가져올 모듈의 경로명 + 파일 이름이 필요합니다. 아래 소스를 변경해야합니다 :

    imp.load_source는 가져올 모듈의 경로명 + 파일 이름이 필요합니다. 아래 소스를 변경해야합니다 :

    mod = imp.load_source("bar","./foo/bar.py")
    
  2. ==============================

    2.간단한 경로 지정 문제 인 것처럼 보입니다. __file__ 또는 cwd를 확인하십시오. 어쩌면 절대 파일 경로를 먼저 시도해보십시오. -이 흉내범 예는 도움이 될 수 있습니다.

    간단한 경로 지정 문제 인 것처럼 보입니다. __file__ 또는 cwd를 확인하십시오. 어쩌면 절대 파일 경로를 먼저 시도해보십시오. -이 흉내범 예는 도움이 될 수 있습니다.

  3. from https://stackoverflow.com/questions/4970235/importing-a-module-dynamically-using-imp by cc-by-sa and MIT license