在交互式的时候用python重新导入一个模块
我知道这是可以做到的,但我从来没有记得过。
你怎么能重新导入模块在Python? scheme如下:我交互地导入一个模块并修改它,但是然后我面对一个错误。 我修复.py文件中的错误,然后我想重新导入固定模块而不退出python。 我该怎么做 ?
这应该工作:
reload(my.module)
从Python文档
重新加载以前导入的模块。 参数必须是一个模块对象,所以它必须在之前成功导入。 如果您使用外部编辑器编辑了模块源文件,并且希望在不离开Python解释器的情况下尝试新版本,这将非常有用。
在Python 3中, reload
不再是一个内置函数。
如果你使用python 3.4+,你应该使用importlib
库中的reload
来代替:
import importlib importlib.reload(some_module)
如果您使用的是Python 3.2或3.3,您应该:
import imp imp.reload(module)
代替。 请参阅http://docs.python.org/3.0/library/imp.html#imp.reload
如果您使用的是ipython
,那么一定要考虑使用自动ipython
扩展:
%load_ext autoreload %autoreload 2
实际上,在Python 3中, imp
模块被标记为DEPRECATED。 那么,至less在3.4这是真的。
相反,应该使用importlib
模块的reload
function:
https://docs.python.org/3/library/importlib.html#importlib.reload
但请注意,这个库在最后两个次要版本中有一些API更改。