gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 03:00:26 26 4
gpt4 key购买 nike

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

但是,如果我保存并退出所有内容,重新打开 Enthought,选择“Change to Editor Directory”,然后运行 ​​test_file,它会打印出正确的结果。

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

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

最佳答案

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

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

  import file
reload(file)

关于Python - 对导入文件的更改不生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29292029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com