2013-10-26 173 views
0

我在python3以下情形重新導入更新模塊蟒蛇

from phase_2d import phase_2d #WHERE phase_2d是一個Python文件phase_2d.py

我然後編輯這個文件,並想測試的變化,而無需退出python並重新加載所有內容。

imp.reload(phase_2d) 

返回錯誤 '類型:錯誤:重載()的參數必須是模塊'

回答

0

既然你從模塊phase_2d進口phase_2d類,當你調用imp.reload(phase_2d),該phase_2d傳遞給reload命令的是類,而不是模塊。爲了使用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))