Python 使用后;del np.dtype“;,重新导入numpy是否应该解决此问题?
我试图理解python中导入的行为 我使用了Python 使用后;del np.dtype“;,重新导入numpy是否应该解决此问题?,python,numpy,spyder,Python,Numpy,Spyder,我试图理解python中导入的行为 我使用了del numpy.dtype,当我键入numpy.dtype时,它会抛出一个错误。但是当我尝试重新输入numpy时,它没有帮助 我试图通过执行del sys.modules['numpy']来遵循来自的答案,但后来再次尝试导入numpy时出错 所有这一切的奇怪之处在于,我仍然可以使用numpy而没有任何问题,除了当我键入numpy.dtype时,我得到了错误: AttributeError: 'module' object has no attrib
del numpy.dtype
,当我键入numpy.dtype
时,它会抛出一个错误。但是当我尝试重新输入numpy时,它没有帮助
我试图通过执行del sys.modules['numpy']来遵循来自的答案,但后来再次尝试导入numpy时出错
所有这一切的奇怪之处在于,我仍然可以使用numpy而没有任何问题,除了当我键入numpy.dtype时,我得到了错误:
AttributeError: 'module' object has no attribute 'dtype'
有人能解释发生了什么以及我如何恢复:
numpy.dtype
能够无错误地导入numpy
我在Spyder interactive IPython控制台中使用Python2.7。在Python中一个模块只会导入一次,因此后续的导入不起任何作用。您可以使用importlib
的reload
方法重新加载库,删除库后,该方法将使dtype
返回
您提到您正在使用Python 2.7,2.7中包含的importlib
主要是为了便于更新,并且不包含reload
方法。您真的应该更新到Python 3,因为2020年即将到来,但是如果您坚持的话,您可以使用内置的reload
方法。您不能简单地退出Python会话并启动一个新的会话吗?模块只会被导入一次,后续的导入不起任何作用。@Keldorn是的,我可以退出Python,但这需要一些时间@user3483203即使在使用del sys.modules['numpy']
的情况下也是如此吗?@I_'t'u Don'u code如果从sys.modules
中删除它,它将在下次使用时重新加载import@user3483203奇怪的是,当我再次尝试导入时,它抛出错误ImportError:cannotimportname add\u newdocs
Nice。然而,正如OP所问的那样,这是否适用于Python2.7?对于Python2.7,它应该是reload(numpy)
,内置函数:作为一个附带问题,2020年Python2.7会发生什么?
import importlib
importlib.reload(numpy)
# numpy.dtype accessible again