在vscode中调试python-找不到命名空间包

在vscode中调试python-找不到命名空间包,python,visual-studio-code,Python,Visual Studio Code,我有一个项目 project -- src ---- namespacepackage ------ subpackage -------- this.py -- folder ---- execute.py 在execute.py中,我们有 from namespacepackage.subpackage.this import something 设置了.env和settings.json后,自动完成功能运行良好。但是我不知道如何设置launch.json来让终端工作。我一直收到导入错误

我有一个项目

project
-- src
---- namespacepackage
------ subpackage
-------- this.py
-- folder
---- execute.py
execute.py
中,我们有

from namespacepackage.subpackage.this import something
设置了
.env
settings.json
后,自动完成功能运行良好。但是我不知道如何设置
launch.json
来让终端工作。我一直收到导入错误(没有名为namespackage.subpackage的模块)

请注意,名称空间包没有
\uuuu init\uuuu.py
,因为该包由多个存储库组合而成

当前launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${workspaceRoot}/src",
        }
    ]
}

原因是,在导入其他文件时,VSCode默认情况下会从当前打开文件的父文件夹开始搜索,因此无法从该文件夹中找到
src
namespacepack

解决方案:我们可以在文件开头添加以下代码,将需要导入的文件路径添加到系统路径,以帮助VSCode查找文件:

import os,sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

此外,当遇到“Pylint()”错误但代码可以执行时,我们可以使用

"python.linting.pylintArgs": [
      "--disable=E0602"
    ],
在设置(
settings.json
)中关闭它。(建议在代码修改为可执行后关闭Pylint错误或警告。)

"python.linting.pylintArgs": [
      "--disable=E0602"
    ],