Visual Studio 代码 launch.json 调试设置 Python 模块

Visual Studio Code launch.json settings for debugging Python modules

目前我的文件结构是这样的:

├── Utilities
|   ├── __init__.py
│   ├── module1.py
├── main.py
├── global_var.py

main.pymodule1.py中我已经写了import global_var,当我运行 main.py.

时一切顺利

但是,当我尝试调试或 运行 module1.py 本身时,它总是显示

Exception has occurred: ModuleNotFoundError
No module named 'global_var'

而且我必须手动将 module1.py 移动到与 global_var.py 相同的文件夹,这样它才能 运行 成功。

我想知道如何设置 launch.json 停止移动文件。这是我现在的 launch.json

{
    "name": "Python: Modules",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "cwd": "${workspaceFolder}",
    "console": "integratedTerminal"
}

不知道文件'global_var.py'的父文件夹名称是什么,所以暂时命名为folder_aa.

因为不在同一个文件夹,Visual Studio代码找不到路径,所以你可以告诉它你要导入的文件的路径:

  1. 将设置行添加到 .vscode 文件的 launch.json 文件中:

    "env": {"PYTHONPATH" : "${workspaceRoot}"},

    Visual Studio代码会根据"${workspaceRoot}".

    找到当前项目的根目录(项目文件夹名称)
  2. 使用“from folder_aa import global_var”代替“import global_var”。

    Visual Studio 代码将从文件夹 'folder_aa'.

    中找到文件 'global_var.py'

我创建了一个类似你提供的目录结构的工程,通过以上操作,可以成功导入

我的环境:Python3.8.3; Visual Studio代码1.47.3; OS: Windows_NT x64 10.0.18362