如何让vscode在编辑模块后检测自动重载模块?

问题描述 投票:0回答:1

我看到有几个问题在问这个问题,但是没有一个解决方案对我有用。

我在不同的模块中开发了一些函数类,并且有一个 main.py 脚本来调用一切。

问题是,当我对另一个模块中的函数进行修改时,例如,当我调用另一个模块中的函数时,VSCode无法检测到修改。module1.pyVSCode不能检测到变化,当我调用其他模块中的函数时,VSCode不能检测到这些变化。main.py 更新后,还是旧版本。

我可以通过这样的方式来解决这个问题。

from importlib import reload
reload module1

但这样做很快就会变老 尤其是当我从一个模块中导入特定的函数或类时

简单地重新运行在我的 main.py 实际上并没有什么作用,我只能在杀了shell后从头开始重开,如果我是渐进式开发一些东西,这并不理想。

我在一些问题上看到,我可以把这个加入到我的程序中。

"files.useExperimentalFileWatcher" : true

加入我的... settings.json但在我的1.45.1版本中,这似乎不是一个已知的配置设置。

这是Spyder默认处理的,当你在开发的pkg中调用多个模块中的函数和类时,可以很容易地进行增量编码。

如何在VSCode中实现这个功能?要说明的是,我不想使用IPython的自动加载魔法命令。

非常感谢

顺便说一下,这里是我看到的其他问题,但没有得到一个工作的解决方案,在其他类似的问题答案。

链接1链接2

python visual-studio-code module reload
1个回答
1
投票

在VS Code中不支持这样做,因为Python的重载机制不够可靠,不能在repl之外使用,即使这样你也要小心。它不是一个完美的解决方案,可能会导致陈旧的代码躺在那里,这很容易让你被绊倒(我知道这一点是因为 我写道 importlib.reload() 😁).

© www.soinside.com 2019 - 2024. All rights reserved.