使用 "del np.dtype" 后,是否应该重新导入 numpy 来解决这个问题?
After using "del np.dtype", should re-importing numpy fix this?
我正在尝试了解 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'
谁能解释一下发生了什么以及我该如何恢复:
- numpy.dtype
- 能够无错误地导入 numpy
我在 Spyder 交互式 IPython 控制台中使用 Python2.7。
一个模块只会在 Python 中导入一次,因此您后续的导入不会执行任何操作。您可以使用 importlib
的 reload
方法重新加载库,这将在您删除它后将 dtype
带回来。
import importlib
importlib.reload(numpy)
# numpy.dtype accessible again
你提到你使用的是Python2.7,2.7中包含的importlib
主要是为了更新方便,并没有包含reload
方法。你真的应该更新到 Python 3,因为 2020 年快到了,但如果你坚持,你可以使用内置的 reload
方法。
我正在尝试了解 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'
谁能解释一下发生了什么以及我该如何恢复:
- numpy.dtype
- 能够无错误地导入 numpy
我在 Spyder 交互式 IPython 控制台中使用 Python2.7。
一个模块只会在 Python 中导入一次,因此您后续的导入不会执行任何操作。您可以使用 importlib
的 reload
方法重新加载库,这将在您删除它后将 dtype
带回来。
import importlib
importlib.reload(numpy)
# numpy.dtype accessible again
你提到你使用的是Python2.7,2.7中包含的importlib
主要是为了更新方便,并没有包含reload
方法。你真的应该更新到 Python 3,因为 2020 年快到了,但如果你坚持,你可以使用内置的 reload
方法。