在shell输入manage.py runserver打开文本编辑器而非启动Django服务器如何解决
Django执行runserver命令仅打开文本编辑器排查方案
问题根因
系统未将.py后缀文件关联到Python解释器执行,或命令输入不规范,导致调用了默认关联的文本编辑器打开manage.py文件,未传递runserver参数给Python执行。
排查步骤
- 首先确认命令输入规范
正确的执行命令需要显式调用Python解释器,无需修改系统配置即可直接生效:
若仅输入# 全局Python环境 python manage.py runserver # 虚拟环境(Windows) venv\Scripts\python.exe manage.py runserver # 虚拟环境(Mac/Linux) ./venv/bin/python manage.py runservermanage.py runserver触发文本编辑器,可先使用上述命令临时解决,再根据系统类型完成后续配置实现直接执行脚本。
Windows系统配置排查
- 检查.py文件默认关联:右键任意
.py文件,选择「属性」,确认「打开方式」设置为对应版本的Python解释器,而非记事本、VS Code等文本编辑器。 - 修复Python安装配置:重新运行对应版本的Python安装包,勾选「Add Python to PATH」、「Associate .py files with Python」选项后执行修复安装。
- 检查注册表参数传递配置:按下
Win+R输入regedit打开注册表,定位到HKEY_CLASSES_ROOT\Python.File\shell\open\command,确认默认值末尾包含%*参数,示例正确值为"C:\Python311\python.exe" "%1" %*,缺少%*会导致runserver等参数无法传递给脚本。 - 检查PATHEXT环境变量:打开系统环境变量设置,确认
PATHEXT变量中包含.PY项,确保系统将.py文件识别为可执行文件。
Mac/Linux系统配置排查
- 检查脚本执行权限:在项目目录下执行
ls -l manage.py,确认文件权限中包含可执行标识(x),若无则执行chmod +x manage.py添加权限。 - 检查shebang声明:打开
manage.py文件,确认第一行内容为#!/usr/bin/env python3,用于告知系统调用Python解释器执行该脚本。 - 检查路径调用规则:类Unix系统默认不将当前目录加入可执行路径,直接执行
manage.py runserver会报错,需输入完整相对路径./manage.py runserver即可正常执行。
验证效果
配置完成后执行启动命令,若终端输出Django版本、监听地址http://127.0.0.1:8000等启动日志,即为修复成功。
内容的提问来源于stack exchange,提问作者mcklmo
相关产品推荐
相关产品推荐

