Django:配置Django报错:No such file:../../runserver

先看第四条,大部分可能是该原因

1. 路径错误

确保你在 args 中使用的命令是正确的。在 Django 项目中,runserver 是 Django 的一个命令,而不是一个文件路径。你不应该将 runserver 视为文件路径,而是作为 Django 的管理命令参数传递。

检查你的 launch.json 配置文件,确保 args 中只包含 Django 的命令,而不包含路径。例如:

python 复制代码
"args": [
    "runserver"
]

2. program 字段

在 launch.json 配置文件中,如果 program 字段为空,调试器会默认使用 args 中的内容来启动 Django 服务器。在大多数情况下,你不需要显式指定 program 字段,因为 args 应该足够。

确保你的配置文件没有错误的路径设置。你可以尝试移除 program 字段,或者将其设置为 Django 项目的 manage.py 文件的路径。例如:

python 复制代码
"program": "${workspaceFolder}/manage.py"

3. 项目目录结构

确保你的 Django 项目结构是正确的,并且 manage.py 文件确实存在于项目的根目录。如果 manage.py 文件不在预期的位置,你需要调整路径或移动文件。

4. 工作区设置

确保你在 VS Code 中打开了正确的工作区,并且配置文件位于项目的 .vscode 文件夹内。

4.1、查看自己配置的launch.json

python 复制代码
{
    // 使用 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 配置示例如下:

python 复制代码
{
    "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 命令以启动开发服务器。

报错原因

  1. program 为空 : 当 program 字段为空时,调试器默认没有明确的脚本文件来启动。这意味着调试器没有具体的文件来运行,因此它可能会尝试将 args 中的内容(如 runserver)当作程序路径来访问。

  2. args 中包含命令 : 如果 args 中包含如 runserver 这样的命令,调试器可能会尝试将这个命令解释为文件路径,因为没有明确指定哪个脚本文件应该被执行。这样,调试器会尝试在指定路径下查找 runserver,从而导致 FileNotFoundError。

相关推荐
ClickHouseDB5 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906945 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
时间售卖铺6 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw7 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社7 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙8 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3769 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02149 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川10 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组10 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制