我经常在Python解释器中测试我的模块,当我看到错误时,我会快速更新.py文件。但是我如何让它反映在解释器上呢?所以,到目前为止,我一直在退出并重新进入解释器,因为重新导入文件再次不适合我。


当前回答

import sys
del sys.modules['module_name']

其他回答

不确定这是否完成了所有预期的事情,但你可以这样做:

>>> del mymodule
>>> import mymodule

这里有一个很好的解释,说明你的依赖模块不会被重新加载,以及可能产生的影响:

http://pyunit.sourceforge.net/notes/reloading.html

pyunit解决这个问题的方法是通过覆盖__import__来跟踪依赖模块,然后从sys. exe中删除每个模块。模块并重新导入。不过他们可能只是装弹而已。

蜻蜓的回答对我有用(python 3.4.3)。

import sys
del sys.modules['module_name']

下面是一个较低层次的解决方案:

exec(open("MyClass.py").read(), globals())

上面所有关于reload()或imp.reload()的答案都已弃用。

Reload()不再是python 3中的内置函数,并且imp. Reload()被标记为已弃用(参见help(imp))。

最好使用importlib.reload()。

在Python 3中,行为会发生变化。

>>> import my_stuff

... 用my_stuff做一些事情,然后:

>>>> import imp
>>>> imp.reload(my_stuff)

你会得到一个全新的,重新加载的my_stuff。