如何设置Python的VS代码以正确启动/调试单个文件,从而尊重相对导入



我发现这个答案对于理解Python中的相对导入非常有用。然而,我发现在获得VS Code的";当前文件";因为它直接使用${file}启动文件。

为了总结上述答案,假设我们有一个这样的结构:

mymod/
__init__.py
apple.py
orange.py

如果orange.py从apple.py导入某些东西:

from .apple import apple_function

那么,将orange.py作为一个没有ImportError的脚本运行的正确方法是从包含mymod:的目录中使用以下命令

python -m mymod.orange

目前,我手动在终端中输入一个类似于上面的命令,这是有效的,但我更喜欢使用键盘快捷键,无论文件名如何都能工作,并节省一些打字时间。

有没有什么可以添加到launch.json中,以便配置为每个特定文件自动启动python?

使用扩展命令变量中的命令extension.commandvariable.file.relativeDirDots

{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"console": "integratedTerminal",
"module": "${command:extension.commandvariable.file.relativeDirDots}.${fileBasenameNoExtension}",
}
]
}

最新更新