동적으로 모듈을 가져 와서 클래스를 생성해야합니다.
이 파이썬 3.2에서 내 작업 코드 :파이썬에서 동적 모듈 가져 오기 (코드 3.2에서 3.3까지)
klass = {}
mod = __import__('sites.' + self.className + '_login', fromlist=[self.className])
klass[self.className] = getattr(mod, self.className)
klass[self.className](**self.args)
모듈은 "사이트"폴더 안에 있습니다. 그것은 my_site_login이고 그 모듈 "my_site"내의 클래스입니다.
파이썬 3.3으로 업그레이드 한 이후 코드가 작동을 멈췄습니다. 나는 importlib.import_module에 의해 _____import_____가 대체되었다고 읽었습니다. 나는 그것을하기 위해 몇 가지 방법을 시도했지만 그것이 작동하도록 할 수는 없다.
이것은 내가 뭘하려 :
https://stackoverflow.com/a/8790051/1095101
mod = getattr(import_module('sites.' + self.className + '_login'), self.className)
내가 해봤 다른 일을 기억 할 수 없다. 내가 말할 수있는 것은, 수입 시도 직후에 넣은 print() 중 아무 것도 보여주지 않았다는 것입니다. 오류 메시지가 표시되지 않습니다. 그것은 단지 주목할 만하다.
죄송합니다. 여러 번 답변을 드렸지만 모든 것을 시도했지만 아무런 효과가 없었습니다. 나는 더 이상 생각할 수 없다. 고맙습니다.
좋아 ... 이것은 당황 스럽다. 코드가 내가 시도한 코드 였으므로 뭔가 잘못되었습니다. 문제는 모듈의 새로운 문서화 문자열에 있습니다. utf-8 선언은 없었고 일부 문자는 모든 것을 엉망으로 만들었습니다. 어쨌든 두 번째 코드를 사용 하겠지만, 동적으로 생성됩니다. 감사. –