그래서 특정 이름의 폴더에서 모듈을 동적으로 가져 오는 간단한 프로그램을 만들려고했습니다. 나는 디렉토리에 os
으로 cd를하고 나는 변수 이름 module에 반복되는 것으로 기술 된 모든 파일 이름을 가지고 for 루프에있다. 따라서 module = __import__(module_name)
을 실행한다.동적 가져 오기 모듈을 사용하면 ImportError가 발생합니다.
내 유일한 문제는 내가이 맞았 얻을 수 있습니다 :
ImportError: No module named "module_name"
은 (내가 문자열로 준 변수의 이름을 말). 파일이 존재합니다. 언급 된 디렉토리에 있으며
import
은 같은 디렉토리에서 잘 작동합니다. 그러나 정상적인 가져 오기는 cd 디렉토리의 모듈에서 작동하지 않습니다. 코드는 다음과 같습니다. 이것이 명백한 질문이라면 유감입니다. 당신은 단순히
os.chdir
로 현재 디렉토리를 변경하는 경우
import os
class Book():
def __init__(self):
self.name = "Book of Imps"
self.moduleNames = []
# configure path
def initialize(self):
path = os.getcwd() + '/Imp-pit'
os.chdir(path)
cwd = os.walk(os.getcwd())
x, y, z = next(cwd)
# Build Modules
for name in z:
if name[:3] == 'Imp':
module_name = name[:len(name) - 3]
module = __import__(module_name)
def start_sim():
s = Book()
s.initialize()
if __name__ == '__main__':
start_sim()