我正在使用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(现在几个月)以来,这种行为正在发生,而且它非常烦人。帮助将不胜感激。
答案 0 :(得分:1)
您遇到的是Python feature。模块在首次导入时初始化并保存在缓存中。每个后续导入都使用缓存,因此模块代码不会再次运行。
在大多数情况下,一个非常合理的经济,在开发时相当烦人。您可以使用importlib.reload
强制python重新加载模块。
答案 1 :(得分:1)
( Spyder维护者)这是一个know issue,它将在我们的 3.2.5 版本中修复,将于2017年12月发布。