结论:是vscode debug的配置文件有问题,或者vscode使用的python解释器不是我们虚拟环境中正在使用的解释器,导致python找不到import的文件。
比如我们正常情况用以下命令来运行程序:

python3 train_wiki.py --seed 300 --n_unseen 10 --gamma 7.5 --alpha 0.4 --dist_func 'inner' --batch_size 4 --epochs 10

这个命令python3 train_wiki.py是运行文件
后面是给文件输入的参数–seed 300 --n_unseen 10 --gamma 7.5 --alpha 0.4 --dist_func ‘inner’ --batch_size 4 --epochs 10

如果要使用vscode的Debug功能时,需要配置.vscode/launch.json文件,以下是运行命令为

python3 train_wiki.py --seed 300 --n_unseen 10 --gamma 7.5 --alpha 0.4 --dist_func 'inner' --batch_size 4 --epochs 10
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Debug with Args",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${workspaceFolder}/model",
            "args": [
                "--seed",
                "300",
                "--n_unseen",
                "10",
                "--gamma",
                "7.5",
                "--alpha",
                "0.4",
                "--dist_func",
                "inner",
                "--batch_size",
                "4",
                "--epochs",
                "10"
            ]
        }
    ]
}

这里是 launch.json 文件各部分的解释:

“version”: “0.2.0”: 这是 launch.json 文件的版本号。
“configurations”: […]: 这是一个配置数组,可以包含多个调试配置。
对于您提供的这个具体配置:

“name”: “Python: Debug with Args”: 这是配置的名称,可以在 VSCode 中选择调试配置时看到。
“type”: “python”: 指定这个配置用于 Python 项目。
“request”: “launch”: 表示这是一个启动配置,即当你开始调试时,VSCode 会使用这个配置启动你的程序。
“program”: "vscode python debug vscode Python debug出错_开发语言{file} 表示当前打开的文件。
“console”: “integratedTerminal”: 指定输出将显示在 VSCode 的集成终端中。

“cwd”: “$ {workspaceFolder}/model”,意思是在当前工作目录下的model文件夹下运行命令
当前工作目录指的是在 VSCode 中运行或调试 Python 代码时使用的目录。“cwd”: “${workspaceFolder}/model” 指定了当前工作目录为您在 VSCode 中打开的项目(或称为工作区)的根目录下的 model 子目录。

“${workspaceFolder}” 变量代表您在 VSCode 中打开的项目文件夹的根目录。当您运行或调试 Python 代码时,这个设置会覆盖终端中的当前工作目录。

这意味着,当您在 VSCode 中运行或调试代码时,程序会将工作区根目录下的 model 子目录作为当前工作目录。在这个目录下,程序可以直接访问该目录中的文件和子目录,而无需指定绝对路径。

“args”: […]: 这是一个参数数组,用于向 Python 程序传递命令行参数。这个例子中的参数包括 --seed, 300, --n_unseen, 10 等。

通过这个配置,当您开始调试当前打开的 Python 文件时,VSCode 会使用您指定的参数在集成终端中运行该文件,并将工作目录设置为 model 子目录。

当launch.json文件全部配置好后,报错ImportError,大概率是因为vscode没有选择正确的解释器。

在 VSCode 中选择正确的 Python 解释器非常重要,因为它会影响到您在项目中使用的 Python 包和环境。以下是详细的步骤:

a. 在 VSCode 左下角点击 Python 版本。您将看到当前正在使用的 Python 解释器的版本号。如果您没有看到这个选项,您可能需要先安装 Python 扩展。在扩展市场中搜索 “Python”,然后安装由 Microsoft 提供的官方扩展。

或者,您可以按快捷键 Ctrl+Shift+P(Mac 上为 Cmd+Shift+P)打开命令面板。在命令面板中,输入 “Python: Select Interpreter” 并点击回车。

b. 无论您是点击左下角的 Python 版本还是使用命令面板,都会打开一个包含可用 Python 解释器列表的下拉菜单。这个列表中通常包括系统中安装的 Python 环境,以及与您的项目关联的虚拟环境。

请从列表中选择与您的项目匹配的 Python 解释器。确保选择的解释器与您安装 “pandas” 的解释器相同。如果您无法在列表中找到正确的解释器,您可以点击 “Enter interpreter path…”,然后手动输入解释器的路径。

选择正确的解释器后,VSCode 会自动更新您的项目配置,并使用您选择的解释器运行 Python 代码。现在,您应该可以在 VSCode 中正确导入和使用 “pandas” 包了。如果仍然遇到问题,请尝试重启 VSCode 并确保您的项目设置和 Pylance 配置没有其他问题。

这样应该就可以解决debug报错的问题了。