我在python3中有以下场景
from phase_2d import phase_2d
#其中phase_2d是一个python文件phase_2d.py
然后我编辑这个文件并想要测试更改,而不必退出 python 并重新加载所有内容。
imp.reload(phase_2d)
返回错误“类型:错误:reload() 参数必须是模块”
我在python3中有以下场景
from phase_2d import phase_2d
#其中phase_2d是一个python文件phase_2d.py
然后我编辑这个文件并想要测试更改,而不必退出 python 并重新加载所有内容。
imp.reload(phase_2d)
返回错误“类型:错误:reload() 参数必须是模块”
由于您从模块 phase_2d 导入了 phase_2d 类,因此当您调用 imp.reload(phase_2d) 时,传递给 reload 命令的 phase_2d 是类,而不是模块。为了使用 reload 命令,您必须导入实际的模块,或者获取对该模块的引用。例如,您可以执行以下操作:
import phase_2d
from phase_2d import phase_2d as p2d
...
imp.reload(phase_2d)
或者,如果您真的只想从模块中导入单个类,您可以使用检查模块从类中获取父模块(http://docs.python.org/2/library/inspect.html#inspect .getmodule )
import inspect
from phase_2d import phase_2d
....
imp.reload(inspect.getmodule(phase_2d))