我试图了解 python 中 import 的行为。
我使用了del numpy.dtype
,当我输入numpy.dtype
时它会抛出错误。但是当我尝试重新导入 numpy 时,它没有帮助。
我尝试遵循 Python: "de-import", "re-import", "reset import"? 的答案通过执行 del sys.modules['numpy']
,但是当我随后尝试再次导入 numpy 时出现错误。
所有这一切的奇怪之处在于,我仍然可以使用 numpy 没有任何问题,除了当我输入 numpy.dtype
时,我收到错误:
AttributeError: 'module' object has no attribute 'dtype'
有人可以解释一下发生了什么以及我如何恢复:
- numpy.dtype
- 能够无错误地导入 numpy
我在 Spyder 交互式 IPython 控制台中使用 Python2.7。
最佳答案
在 Python 中,模块只会导入一次,因此后续导入不会执行任何操作。您可以使用 importlib
的 reload
方法重新加载库,这会在您删除库后将其恢复为 dtype
。
import importlib
importlib.reload(numpy)
# numpy.dtype accessible again
您提到您使用的是Python 2.7,2.7中包含的importlib
主要是为了方便更新,并且不包含reload
方法。您确实应该更新到 Python 3,因为 2020 年即将到来,但如果您坚持的话,可以使用内置的 reload
方法。
关于python - 使用 "del np.dtype"后,重新导入 numpy 是否应该修复此问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785763/