重新加载模块给出 NameError: name 'reload' is not defined

2022-01-31 00:00:00 python python-3.x

问题描述

我正在尝试重新加载我已经在 Python 3 中导入的模块.我知道您只需要导入一次,再次执行 import 命令不会做任何事情.

I'm trying to reload a module I have already imported in Python 3. I know that you only need to import once and executing the import command again won't do anything.

执行 reload(foo) 出现此错误:

Traceback (most recent call last):
    File "(stdin)", line 1, in (module)
    ...
NameError: name 'reload' is not defined

错误是什么意思?


解决方案

reload 是 Python 2 中的内置函数,但不是 Python 3 中的内置函数,因此您看到的错误是预期的.

reload is a builtin in Python 2, but not in Python 3, so the error you're seeing is expected.

如果您确实必须在 Python 3 中重新加载模块,您应该使用:

If you truly must reload a module in Python 3, you should use either:

  • importlib.reload适用于 Python 3.4 及更高版本
  • imp.reload适用于 Python 3.0 到 3.3(自 Python 3.4 起已弃用,支持 importlib)

相关文章