【发布时间】:2019-09-27 07:17:08
【问题描述】:
我正在编写 Visual Studio Code 中的 python 代码,并为函数使用了几个文件,我在脚本的开头导入了这些文件。假设我在与我的主脚本相同的文件夹中有一个文件“doStuff.py”,其内容
def doStuff():
print('I am doing stuff!')
# print('lots of stuff.')
然后我会在另一个脚本中导入,例如“main.py”写成
from doStuff import doStuff
doStuff()
如果我现在运行脚本,然后运行例如取消注释 doStuff.py 中函数的第二行,我希望看到我的 doStuff() 方法的新行为。不幸的是,这不会发生。我最近从 Spyder 切换到 VSCode,在 Spyder 中这总是自动工作,但似乎 VSCode 不会自动重新加载导入的模块。
关于我当前工作流程的一些信息: 要打开编程环境,我使用“文件/打开文件夹”并选择 main.py 和 doStuff.py 所在的文件夹。 然后我使用“在 Python 交互窗口中运行当前文件”来启动我的脚本。 我猜有更好的方法,它可能与 launch.json 文件有关,但到目前为止,我发现让它使用更改后的外部符号的唯一方法是重新启动 VSCode。
编辑: 这里的问题:Visual Studio Code: Auto-refresh file changes 是不同的,如果我理解正确的话,因为它是关于要在 VS-Code 中重新加载的外部更改文件。我的问题与在交互式窗口中重新加载 python 模块有关。
【问题讨论】:
-
@PeterWood 您发布的问题与 VSCode 之外的文件更改有关,不是吗?我正在更改 VSCode 中的文件,但它们仍然没有被重新加载。
-
你必须再次运行脚本。
-
@PeterWood 很明显,是的。但在给定的例子中。这只会打印第一条消息而不是第二条消息。在我重新启动 VSCode 之前,它的行为就像我没有更改 doStuff.py 一样。
-
重启 Python 内核也可以。这样做仍然不令人满意,但比重新启动 VSCode 更好。