运行 python 使用 VS 代码调试器在模块模式下的文件
Run python file in module mode using VS Code debugger
这是我的目录结构 -
src
Main.py
Message.py
...
__init__.py
在Main.py
中,我有一个导入语句import src.Message
。当我使用命令 python3 -m src.Main.py
自己执行文件时,这工作正常
但是,当我使用 VS 代码调试器执行相同操作时,我得到 ModuleNotFoundException
。
我假设这是因为调试器没有使用 -m
标志,所以我在 VS Code 调试器中使用了 运行 模块配置。
我在那里输入了src.Main.py
,当程序启动时,调试器无法连接到它,几秒钟后我得到一个错误。
如果您要调试 VSCode 中的模块,则不包括 .py
文件扩展名(仅 src.Main
)。在您的情况下,您的 launch.json
文件应如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module", // Whatever name you see fit!
"type": "python",
"request": "launch",
"module": "src.Main"
}
]
}
基于目录而不是模块名称的替代配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Program", // Whatever name you see fit!
"type": "python",
"request": "launch",
"program": "${workspaceRoot}/src/Main.py",
"console": "integratedTerminal"
}
]
}
关于Python调试配置的更多信息,您可以查看this link
问题是 parent folder of 'src'
还没有添加到 sys.path
。
你运行python3 -m src.Main.py
在src's
父文件夹的位置下,对吗?然后 src
的父文件夹的位置将添加到 sys.path
.
因此,您需要配置launch.json文件,以便将相关路径添加到sys.path
。
如果您在 VSCode 中打开 src
的文件夹:
"env": {
"PYTHONPATH": "../"
},
如果您在 VSCode 中打开 src's parent
的文件夹:
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
launch.json 看起来像这样:
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
}
]
这是我的目录结构 -
src
Main.py
Message.py
...
__init__.py
在Main.py
中,我有一个导入语句import src.Message
。当我使用命令 python3 -m src.Main.py
但是,当我使用 VS 代码调试器执行相同操作时,我得到 ModuleNotFoundException
。
我假设这是因为调试器没有使用 -m
标志,所以我在 VS Code 调试器中使用了 运行 模块配置。
我在那里输入了src.Main.py
,当程序启动时,调试器无法连接到它,几秒钟后我得到一个错误。
如果您要调试 VSCode 中的模块,则不包括 .py
文件扩展名(仅 src.Main
)。在您的情况下,您的 launch.json
文件应如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module", // Whatever name you see fit!
"type": "python",
"request": "launch",
"module": "src.Main"
}
]
}
基于目录而不是模块名称的替代配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Program", // Whatever name you see fit!
"type": "python",
"request": "launch",
"program": "${workspaceRoot}/src/Main.py",
"console": "integratedTerminal"
}
]
}
关于Python调试配置的更多信息,您可以查看this link
问题是 parent folder of 'src'
还没有添加到 sys.path
。
你运行python3 -m src.Main.py
在src's
父文件夹的位置下,对吗?然后 src
的父文件夹的位置将添加到 sys.path
.
因此,您需要配置launch.json文件,以便将相关路径添加到sys.path
。
如果您在 VSCode 中打开 src
的文件夹:
"env": {
"PYTHONPATH": "../"
},
如果您在 VSCode 中打开 src's parent
的文件夹:
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
launch.json 看起来像这样:
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
}
]