VSCode Python 调试器 FileNotFoundError

Alp*_*ren 8 python debugging visual-studio-code

让我们定义一个简单的文件夹结构,如下所示:

project
+---code
|       main.py
|
\---data
        foo.txt
Run Code Online (Sandbox Code Playgroud)

主要.py:

foo_path = "./../data/foo.txt"

with open(foo_path) as f:
    s = f.read()
    print(s)
Run Code Online (Sandbox Code Playgroud)

此代码在使用python main.py命令正常运行时运行良好,但在使用 VSCode Python 调试器进行调试时会引发以下错误。

Exception has occurred: FileNotFoundError
[Errno 2] No such file or directory: './../data/foo.txt'
  File "C:\Users\user\Workspaces\project\code\main.py", line 3, in <module>
    with open(foo_path) as f:
Run Code Online (Sandbox Code Playgroud)

我在 Windows 10 中使用 VSCode 和 Python 3.7.1 Anaconda 版本。我知道文件路径就像 Linux 路径,但它在正常运行时可以工作。我在Python VSCode Extension 的 GitHub 存储库中找不到任何未解决的问题。这是一个常见错误,还是我做错了什么?

另外,如果我定义foo_path = ".\\..\\data\\foo.txt",它的行为与前一个相同。运行正常,调试时也报同样的错误。

如何在不使用额外包(如os.path或使用完整文件路径)的情况下解决此问题?

编辑:我在 Ubuntu 18.04 中尝试过,它的行为相同。

Bre*_*non 5

cwd您可以在调试配置中使用该选项,但我建议您不要对路径进行硬编码,并使用pathlibos.path指定相对于位置的文件__file__(我不太确定为什么要避免这些模块)。