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

how to make vscode detect / auto reload modules after editing them?

我看到有几个问题问这个问题,但是 none 的解决方案对我有用。

我正在不同模块中开发一些 functions/classes,并且有一个 main.py 脚本可以调用所有内容。

问题是,当我更改另一个模块中的函数时,即 module1.py,当我在更新后调用 main.py 中的函数时,VSCode 没有检测到更改, 还是老版本。

我可以通过以下方式解决此问题:

from importlib import reload
reload module1

但这很快就变老了,尤其是当我从模块导入特定函数或 类 时。

简单地重新 运行 我的 main.py 顶部的导入实际上没有做任何事情,我只能这样做,如果我杀死 shell 并重新打开它开始,如果我正在逐步开发某些东西,这并不理想。

我已经阅读了一些可以包括在内的问题:

"files.useExperimentalFileWatcher" : true

进入我的 settings.json,但它似乎不是我的版本 1.45.1 中的已知配置设置。

这是 Spyder 默认处理的事情,这使得在调用函数时增量编码变得非常容易,并且 类 来自您正在开发的 pkg 中的多个模块。

如何在 VSCode 中实现此目的?明确地说,我不想使用 IPython autoreload 魔术命令。

非常感谢

仅供参考,这是我看到的其他问题,但没有得到有效的解决方案,其中包括类似 questions/answers :

VS Code 不支持此功能,因为 Python 的重新加载机制不够可靠,无法在 REPL 之外使用,即便如此你也应该小心。这不是一个完美的解决方案,可能会导致陈旧的代码,这些代码很容易让你绊倒(我知道这一点是因为 I wrote importlib.reload() )。