在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"
],