Python - 对导入文件的更改不生效

Ala*_*anH 8 python debugging enthought python-2.7

我有一个名为 的文件test_file,它旨在测试另一个名为file. 'test_file' 还包含.txt同一目录中的一个文件。当我更新时file,保存,选择“更改为编辑器目录...”,然后运行test_file,Enthought 似乎无法识别file已更新。起初我原本以为我每次更新时,选择“更改为编辑目录”选项file,我也这样做,但test_file仍然打印“成功”,即使我刻意修改file,使test_file应打印假的。(是的,我确定它应该打印 false,因为我在 中添加了一堆乱码file,甚至不应该运行的代码,例如抛出return带有明显不正确缩进的语句)。所以,本质上,Enthought Canopy 没有意识到我已经更新了file.

但是,如果我保存并退出所有内容,重新打开Enthought,选择“更改为编辑器目录”,然后运行test_file,它会打印正确的结果。

这非常令人沮丧,因为在我意识到这一点之前,我花了几天时间调试正确的代码。这让我非常担心,因为我不知道我过去测试的内容是否真的正确,而且我不希望将来发生这种情况。

造成这种情况的可能原因是什么?(注:不知道这是Enthought问题还是Python问题)

pbe*_*kes 7

没有看到代码很难说,但我怀疑它file是使用等效于import file. Python 缓存导入的模块,因此它不会获取file. 这是一个 Python 功能,独立于 Enthought Canopy。

如果是这种情况,您可以通过在导入后添加对reload( http://bit.ly/1E97V4n )的调用来解决问题test_file,以明确强制重新加载模块:

  import file
  reload(file)
Run Code Online (Sandbox Code Playgroud)