初学者提问。我已经启动了我的 iPython shell,并且正在使用 run-command 运行脚本,并且一切正常。但是,运行脚本文件,然后编辑导入的脚本文件,然后再次尝试运行它会导致旧的导入文件运行。所以我猜python会为速度保存某种缓存。我已经尝试过明确的命令等但无济于事。
基本上我的问题是这个。两个文件:function.py 和 program.py。程序文件导入函数。但是运行程序然后编辑函数然后再次运行程序会导致旧的函数/未编辑的版本运行。
在 iPython 或标准 Python 解释器中,您可以使用该reload()
函数重新加载导入的模块。
例子:
In [1]: import foo
# make some changes to the foo.py
In [2]: reload(foo)
For Python 3.4 and above
import importlib
import foo
# Make changes on foo.py
importlib.reload(foo)
使用Python 的 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
这里说文件每次都从磁盘重新读取,你确定错误不在你身边吗?