在 python 3.7 上使用 importlib 重新加载
reload using importlib on python 3.7
我正在尝试使用 importlib 重新加载文件。我在 Python 3.7 上使用 Anaconda 提示符,但我不明白为什么当我尝试 importlib.reload 时它说“'importlib' 未定义”,但当我使用 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
看起来 import importlib
命令是在 script1
模块中评估的(在导入时),因此它仅在 script1
中可用。 script1
的导入完成后,此模块中导入的任何内容都会超出范围。如果您想重新加载它,请尝试在 import script1
之后显式评估 import importlib
。您的 input/output 应如下所示:
Python 3.7.3
>>> import script1
win32
1267650600228229401496703205376
SpamSpamSpamSpamSpamSpamSpamSpam
import importlib
>>> import importlib
>>> importlib.reload(script1)
我正在尝试使用 importlib 重新加载文件。我在 Python 3.7 上使用 Anaconda 提示符,但我不明白为什么当我尝试 importlib.reload 时它说“'importlib' 未定义”,但当我使用 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
看起来 import importlib
命令是在 script1
模块中评估的(在导入时),因此它仅在 script1
中可用。 script1
的导入完成后,此模块中导入的任何内容都会超出范围。如果您想重新加载它,请尝试在 import script1
之后显式评估 import importlib
。您的 input/output 应如下所示:
Python 3.7.3
>>> import script1
win32
1267650600228229401496703205376
SpamSpamSpamSpamSpamSpamSpamSpam
import importlib
>>> import importlib
>>> importlib.reload(script1)