【问题标题】:how to make vscode detect / auto reload modules after editing them?如何在编辑模块后让 vscode 检测/自动重新加载模块?
【发布时间】:2020-09-12 10:52:01
【问题描述】:

我已经看到一些问题问这个问题,但没有一个解决方案对我有用。

我正在不同模块中开发一些函数/类,并且有一个调用所有内容的 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 自动重载魔法命令。

非常感谢

仅供参考,这是我看到的其他问题,但没有得到有效的解决方案,以及其他类似问题/答案的问题:

link1 link2

【问题讨论】:

    标签: python visual-studio-code module reload


    【解决方案1】:

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

    【讨论】:

    • 向你致敬!感谢您的贡献和回答。
    • 我同意它并不总是足够可靠以供使用。 Eclipse 中的 PyDev 将在调试时重新加载。我想知道是否有办法在 vs 代码中实现该功能。
    • 调试器支持 Flask 和 Django 的自动重载功能。
    猜你喜欢
    • 2019-09-27
    • 2014-09-21
    • 2011-01-08
    • 2016-05-04
    • 2011-09-10
    • 2016-01-24
    • 2021-03-11
    • 2013-04-21
    • 2014-09-03
    相关资源
    最近更新 更多