【问题标题】:reload using importlib on python 3.7在 python 3.7 上使用 importlib 重新加载
【发布时间】:2019-07-28 20:32:43
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: anaconda python-3.7 python-importlib


    【解决方案1】:

    看起来import importlib 命令在script1 模块中进行评估(在导入时),因此它仅在script1 中可用。当script1 的导入完成后,在此模块中导入的任何内容都会超出范围。如果您想重新加载它,请尝试在 import script1 之后显式评估 import importlib。您的输入/输出应如下所示:

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

    【讨论】:

    • 非常感谢@mjarosie
    猜你喜欢
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2021-01-28
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多