我试图了解python中导入的行为。
我使用了del numpy.dtype
,当我键入numpy.dtype
时抛出错误。但是,当我尝试重新导入numpy时,它没有帮助。
我尝试通过执行del sys.modules['numpy']
来遵循Python: "de-import", "re-import", "reset import"?的回答,但是随后尝试再次导入numpy时出现错误。
所有这一切的怪异之处在于,我可以仍然使用numpy,没有任何问题,只是当我键入numpy.dtype
时,我得到了错误:
AttributeError: 'module' object has no attribute 'dtype'
有人可以解释正在发生的事情以及如何恢复:
我在Spyder交互式IPython控制台中使用Python2.7。
答案 0 :(得分:2)
一个模块在Python中只会被导入一次,因此您随后的导入将不执行任何操作。您可以使用importlib
的{{1}}方法重新加载库,删除后将带回reload
。
dtype
您提到您正在使用Python 2.7,并且2.7中包含的import importlib
importlib.reload(numpy)
# numpy.dtype accessible again
主要是为了易于更新,并且不包含importlib
方法。随着2020年的临近,您应该真正升级到Python 3,但是如果您坚持的话,可以使用内置的reload
方法。