1
새로운 모듈을 동적으로 생성하려고하는 프로젝트가 있고 그 다음에 exec
문이 해당 모듈을 가져 오려고합니다. 나는 몇 가지를 시도했습니다동적으로 생성 된 모듈에서 파이썬으로 코드 가져 오기
Traceback (most recent call last):
File "test.py", line 14, in <module>
exec "import testmodule.testA"
File "<string>", line 1, in <module>
ImportError: No module named testmodule.testA
:뿐만 아니라 이름과 모듈을 포함하는 scope
딕셔너리를 생성, sys.modules에에 추가
import imp
s="""
class MyClass(object):
def __init__(self):
pass
def foo(self):
pass
"""
mod = imp.new_module("testmodule.testA")
exec s in mod.__dict__
exec "import testmodule.testA"
는 그러나이 예외가 발생합니다. 그러나 주사위는 없습니다. exec
문에 print locals()
을 입력하면 testmodule.testA가 표시되지만 가져올 수는 없습니다. 내가 여기서 무엇을 놓치고 있니?
감사합니다.
음, 두 번째' exec' 문이 그 예입니다. 실제로는 첫 번째'exec'의 코드/모듈을 필요로하는 일부 코드의 직렬화 된 문자열 형식입니다. 그래서 기본적으로 모듈 객체를 생성하고 생성 된 모듈을 사용하는 메소드를 실행하고 일부 프로세스의 시작점 역할을합니다. – mottosan