【问题标题】:VSCode debug mode does not set os.getcwd() to the one specified in launch.jsonVSCode 调试模式不会将 os.getcwd() 设置为 launch.json 中指定的那个
【发布时间】:2020-12-29 06:02:02
【问题描述】:

我正在尝试在获取其目录的 VSCode 中调试我的 python 程序。当我从终端运行os.getcwd() 时,我得到了正确的目录,但是当我使用 VS Code 调试选项时,它默认为“默认”路径(在我的注册表变量中设置,即 C:\Users\下载)。

我已经创建了一个 launch.json 文件。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "C:\\Users\\<User>\\Documents\\Project\\"
        }
    ]
}

这里我加了“cwd”,除了这里不管我放什么值,os.getcwd()的值在调试模式下返回默认路径。我试过把:整个路径,${workspaceFolder}${fileDirname}${fileWorkspaceFolder}

launch.json 文件位于我项目的 .vscode 文件夹中。

我不明白为什么会发生这种情况,理想情况下希望得到修复。本网站上有关此主题的其他问题均无济于事。

【问题讨论】:

    标签: python visual-studio-code vscode-debugger


    【解决方案1】:

    对于将来可能遇到相同问题的人,我找到了解决方法。 (这在没有launch.json 的情况下有效。)

    我手动将代码从:directory = os.getcwd() 编辑为:

    dir_path = os.path.dirname(os.path.realpath(__file__))
    os.chdir(dir_path)
    directory = os.getcwd()
    

    然后调试器在当前工作目录中并且能够看到我需要它的文件。

    【讨论】:

      【解决方案2】:

      请在“launch.json”中使用类似以下的设置:

      "cwd": "${workspaceFolder}\\a_pythonscript",
      

      当我的“main.py”在文件夹“demo_csv”中并且“lauch.json”使用"cwd": "${workspaceFolder}\\demo",时:

      由于VS Code中的python调试功能由Python扩展提供,请尝试重新安装Python扩展。

      【讨论】:

      • 这没有帮助:我已经说过 ${workspaceFolder} 没有返回工作目录,只是返回默认目录。在您的示例中,您的默认目录恰好是您的工作目录的父目录。我的不是。
      猜你喜欢
      • 1970-01-01
      • 2021-10-22
      • 2020-12-02
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      相关资源
      最近更新 更多