我正在使用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
我该怎么办?
import recommendations。为什么您认为需要使用reload()?
reload。
with open('file', 'r', encoding='utf-8') as f: do_whatever。绝对不需要在简单程序中或在任何python程序中都真正使用reload()模块。
Answers:
你可能想要importlib.reload()。
from importlib import reload
在Python 2.x中,这是一个内置函数,但在3.x中,它在importlib模块中。
请注意,reload()通常不需要在解释器外部使用,您在这里尝试做什么?
imp是一个模块,而不是文件。(它内置在解释器核心中,不与任何文件对应。)是的,要使用imp.reload它必须导入imp,但这没什么大不了的。
imp使用的位置reload(),是的。这就是命名空间的工作原理。您为什么仍要在交互式提示之外重新加载模块?
重新加载先前导入的模块。该参数必须是模块对象,因此它必须已经成功导入。如果您已使用外部编辑器编辑了模块源文件,并且想在不离开Python解释器的情况下尝试新版本,则这将非常有用。
from importlib import reload
reload(module_name)
正如其他人所说的,您需要importlib.reload(module)或者在某个时候需要from importlib import reload。但是您可以将其隐藏from importlib import reload在初始化文件中。确保PYTHONSTARTUP在您的外壳中定义了它。例如,
export PYTHONSTARTUP=$HOME/python/startup.py
~/.bash_profile如果您的外壳是bash,并且可能取决于您存储python文件的位置,则可能在您的代码中添加一条合理的行。(如果遵循这些说明,请在此时启动一个新的终端窗口,以便执行该行。)然后,您可以将该行放入
from importlib import reload
在~/python/startup.py它会自动发生。(同样,如果您继续进行,请在此时开始一个新的python会话。)这可能看起来有点复杂,只是为了解决这个问题,但是您只需要做一次,然后对每个类似的问题进行处理就可以了。遵循“我希望python总是能做到这一点”的思路,一旦找到解决方案,您就可以放进去,~/python/startup.py而不必理会。
reload。