Python解释器与脚本的关系

时间:2014-04-29 08:14:06

标签: python scripting execfile

在我当前的目录中,我有一个foo1.py脚本和一个名为other的目录,里面有一个foo2.py脚本。

现在:

我启动了解释器,使用execfile我可以启动这两个脚本。问题是,当我编辑并保存foo1.py时,我不必重新启动解释器,我只需再次execfile并运行我的修改,但同样的情况不会发生在{foo2.py 1}}。对于我对foo2.py生效的编辑,我必须退出并重新启动解释器,因为即使在保存后它execfile('foo2.py')将运行与以前相同的脚本...

这很烦人,因为我希望不断地编辑和启动多个脚本,这些脚本经常相互依赖...

我怎样才能使解释器看到我对foo2.py的编辑,而不必重新启动它?

谢谢!

2 个答案:

答案 0 :(得分:1)

查看reload()函数的文档以及那里提到的限制;取决于你的python版本,它位于不同的模块中,对于2.x它是预定义的。

答案 1 :(得分:1)

如果您使用的是“最近的”Python,则可以尝试以下与Python 2.6,2.7和3.x兼容的语法

with open('foo2.py') as file:
    exec(compile(file.read(), 'foo2.py', 'exec'))