如何在编辑后更新Python shell中执行的脚本导入?

时间:2010-11-02 08:15:26

标签: python shell ipython

初学者提问。我已经启动了我的ipython shell,并且我使用run-command运行脚本,一切都很好。但是,运行脚本文件然后编辑导入的脚本文件,然后再次尝试运行它会导致旧的导入文件运行。所以我猜python为了速度保存了某种缓存。我已经尝试过明确的命令,但无济于事。

基本上我的问题是这个。两个文件:function.py和program.py。程序文件导入该函数。但是运行程序然后编辑该函数然后再次运行程序会导致旧的函数/未编辑版本运行。

4 个答案:

答案 0 :(得分:8)

在iPython或标准Python解释器中,您可以使用reload()函数重新加载导入的模块。

示例:

In [1]: import foo
  # make some changes to the foo.py
In [2]: reload(foo)

答案 1 :(得分:1)

使用Python's reload函数重新编译模块代码并重新执行所有模块级代码 - 否则Python解释器将使用陈旧的编译字节码(.pyc)。 例如:

In [1]: import script

In [2]: run script
...

In [3]: reload(script)
Out[3]: <module 'script' from 'script.pyc'>
...
In [4]: run script

答案 2 :(得分:1)

对于 Python 3.4 及更高版本

import importlib
import foo

# Make changes on foo.py

importlib.reload(foo)

答案 3 :(得分:0)

有人说here每次都会从磁盘重新读取文件,你确定错误不在你的身边吗?