Python 使用后;del np.dtype“;,重新导入numpy是否应该解决此问题?

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

我试图理解python中导入的行为

我使用了
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