Spyder没有检测到导入的python文件的变化

时间:2017-12-09 17:03:32

标签: python python-3.x import ide spyder

我正在使用Spyder 3.2.4(Python 3.6)。 Spyder没有检测到导入的python文件的变化。例如:

test2.py:

def func():
    return 5

test1.py:

import test2

a = test2.func()
print(a)

当我编写这些类并保存它们(在同一工作目录中)并运行 test1.py 时,输出为5

但当我更改 test2.py 中的功能时,喜欢:

def func():
    return 10

保存,然后运行 python1.py ,我仍然得到5。只有当我保存,退出IDE并返回时,我将获得更改的代码(10)。

自从我开始使用Spyder(现在几个月)以来,这种行为正在发生,而且它非常烦人。帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您遇到的是Python feature。模块在首次导入时初始化并保存在缓存中。每个后续导入都使用缓存,因此模块代码不会再次运行。

在大多数情况下,一个非常合理的经济,在开发时相当烦人。您可以使用importlib.reload强制python重新加载模块。

答案 1 :(得分:1)

Spyder维护者)这是一个know issue,它将在我们的 3.2.5 版本中修复,将于2017年12月发布。