如何在编辑后 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()
)。
我看到有几个问题问这个问题,但是 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()
)。