【问题标题】:Python interpreter's relationship with scriptsPython解释器与脚本的关系
【发布时间】:2014-04-29 08:14:05
【问题描述】:

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

现在:

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

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

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

谢谢!

【问题讨论】:

    标签: python scripting execfile


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 2019-12-03
        • 2021-11-29
        • 1970-01-01
        • 2011-10-20
        • 1970-01-01
        相关资源
        最近更新 更多