首页 > 解决方案 > 在 python 3.7 上使用 importlib 重新加载

问题描述

我正在尝试使用 importlib 重新加载文件。我在 Python 3.7 上使用 Anaconda 提示符,但是当我尝试 importlib.reload 时,我不明白为什么它说“'importlib' is not defined”,但是当我使用 from x import reload 时它可以工作。

它在这里工作:

>>> import script1  
win32  
1267650600228229401496703205376
SpamSpamSpamSpamSpamSpamSpamSpam  
import importlib  
>>> from importlib import reload  
>>> reload(script1)  
win32
1267650600228229401496703205376
SpamSpamSpamSpamSpamSpamSpamSpam

在这里它不起作用:

Python 3.7.3  
>>> import script1  
win32  
1267650600228229401496703205376  
SpamSpamSpamSpamSpamSpamSpamSpam  
import importlib  
>>> importlib.reload(script1)  
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'importlib' is not defined

标签: anacondapython-3.7python-importlib

解决方案


看起来import importlib命令是在模块内评估的script1(当它被导入时),所以它只在模块内可用script1。导入script1完成后,在此模块中导入的任何内容都超出了范围。如果您想重新加载它,请尝试import importlib明确评估。import script1您的输入/输出应如下所示:

Python 3.7.3  
>>> import script1  
win32  
1267650600228229401496703205376  
SpamSpamSpamSpamSpamSpamSpamSpam  
import importlib
>>> import importlib
>>> importlib.reload(script1)  

推荐阅读