先看第四条,大部分可能是该原因
1. 路径错误
确保你在 args
中使用的命令是正确的。在 Django 项目中,runserver
是 Django 的一个命令,而不是一个文件路径。你不应该将 runserver
视为文件路径,而是作为 Django 的管理命令参数传递。
检查你的 launch.json
配置文件,确保 args
中只包含 Django 的命令,而不包含路径。例如:
"args": [
"runserver"
]
2. program
字段
在 launch.json
配置文件中,如果 program
字段为空,调试器会默认使用 args
中的内容来启动 Django 服务器。在大多数情况下,你不需要显式指定 program
字段,因为 args
应该足够。
确保你的配置文件没有错误的路径设置。你可以尝试移除 program
字段,或者将其设置为 Django 项目的 manage.py
文件的路径。例如:
"program": "${workspaceFolder}/manage.py"
3. 项目目录结构
确保你的 Django 项目结构是正确的,并且 manage.py
文件确实存在于项目的根目录。如果 manage.py
文件不在预期的位置,你需要调整路径或移动文件。
4. 工作区设置
确保你在 VS Code 中打开了正确的工作区,并且配置文件位于项目的 .vscode
文件夹内。
4.1、查看自己配置的launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python 调试程序: Django",
"type": "debugpy",
"request": "launch",
"args": [
"runserver"
],
"django": true,
"autoStartBrowser": true,
"program": " "
}
]
}
可以看到program的参数是为空的,没有指定要启动的脚本文件。
4.2 修正后的 launch.json
示例
一个典型的 launch.json
配置示例如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python 调试程序: Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver"
],
"django": true
}
]
}
在这个配置中:
program
指定了manage.py
的路径("${workspaceFolder}/manage.py"
表示工作区根目录下的manage.py
文件)。args
传递了runserver
作为参数。
工作原理
${workspaceFolder}
是一个变量,指代当前打开的工作区文件夹的路径。将program
设置为${workspaceFolder}/manage.py
表示调试器会在工作区根目录下找到manage.py
文件。args
中的"runserver"
是传递给manage.py
的参数,告诉 Django 执行runserver
命令以启动开发服务器。
报错原因
-
program
为空: 当program
字段为空时,调试器默认没有明确的脚本文件来启动。这意味着调试器没有具体的文件来运行,因此它可能会尝试将args
中的内容(如runserver
)当作程序路径来访问。 -
args
中包含命令: 如果args
中包含如runserver
这样的命令,调试器可能会尝试将这个命令解释为文件路径,因为没有明确指定哪个脚本文件应该被执行。这样,调试器会尝试在指定路径下查找runserver
,从而导致FileNotFoundError
。