如何使用 PYTHONPATH 与 VSCode Python 扩展进行调试?

v-i*_*s-h 13 python visual-studio-code vscode-debugger vscode-python

我正在开发一个项目,其结构如下

Parent Directory
----+ MyPackage
     ----__init__.py
     ----file1.py
----+ Tests
     ----test.py
Run Code Online (Sandbox Code Playgroud)

当我从终端运行测试时,我使用

PYTHONATH=./ python ./Tests/test.py
Run Code Online (Sandbox Code Playgroud)

现在,当我在安装“Python Extension”后尝试调试选项时,会出现错误

Exception has occurred: ModuleNotFoundError
No module names 'MyPackage'
Run Code Online (Sandbox Code Playgroud)

如何将 PYTHONPATH 放入调试配置中以使其得到处理?

v-i*_*s-h 7

经过一番搜索和反复试验后,我发现了一些可行的方法。我将其发布在这里,以便寻找相同问题的人也可以尝试。我不确定这是否是正确的方法。

创建(或添加).vscode/settings.json内容为的文件

{
    // .. any other settings
    "terminal.integrated.env.linux": {
        "PYTHONPATH": "${workspaceFolder}"
      }
}
Run Code Online (Sandbox Code Playgroud)

现在我可以使用该包运行我的项目了。

  • 该解决方案仅在您执行通过终端运行的操作(例如调试)时才有效,但当解释器代表您执行操作时(例如使用测试资源管理器运行测试),该解决方案将不起作用。您还可以[定义一个环境定义文件](https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file),它应该适用于所有实例。 (5认同)

Cal*_*ore 6

在 VSCode 1.74.0 中,我通过将路径放入调试中来使其工作launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python debugging"
            "type": "python"
            // other settings
            "env": {
                "PYTHONPATH": "${workspaceFolder}",
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)