我正在使用 python 3.2.2。当我编写一个简单的程序时,我遇到了这个问题。
>>> reload(recommendations)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
reload(recommendations)
NameError: name 'reload' is not defined
我该怎么做?
我正在使用 python 3.2.2。当我编写一个简单的程序时,我遇到了这个问题。
>>> reload(recommendations)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
reload(recommendations)
NameError: name 'reload' is not defined
我该怎么做?
你可能想要importlib.reload()
.
from importlib import reload
在 Python 2.x 中,这是一个builtin,但在 3.x 中,它在importlib
模块中。
请注意,reload()
通常不需要在解释器之外使用,你想在这里做什么?
@Gareth Latty 答案的更新。imp
在 Python 3.4 中已贬值。现在你想要importlib.reload()
.
from importlib import reload
重新加载以前导入的模块。参数必须是一个模块对象,所以它必须之前已经成功导入。如果您使用外部编辑器编辑了模块源文件并且想要在不离开 Python 解释器的情况下试用新版本,这将非常有用。
from importlib import reload
reload(module_name)
正如其他人所说,您需要importlib.reload(module)
或在更早的时候需要from importlib import reload
. 但是您可以将其隐藏from importlib import reload
在初始化文件中。确保PYTHONSTARTUP
在你的 shell 中定义了它。例如,
export PYTHONSTARTUP=$HOME/python/startup.py
~/.bash_profile
如果您的 shell 是 bash,并且取决于您存储 python 文件的位置,可能会添加到您的 . (如果您按照这些说明进行操作,请在此时启动一个新的终端窗口,以便执行该行。)然后您可以将该行
from importlib import reload
,~/python/startup.py
它会自动发生。(同样,如果你跟着,在这一点上开始一个新的 python 会话。)这可能看起来有点复杂,只是为了解决这个问题,但这是你只需要做一次的事情,然后对于每个类似的问题就像“我希望 python 永远这样做”那样,一旦你找到了解决方案,你就可以把它放进去,~/python/startup.py
然后忘记它。