Sublime Text 本身不运行 Django,仅作为编辑器;所有 manage.py 命令须在终端执行,配置核心是确保正确调用项目所需的 Python 解释器、工作目录和 Django 包,否则会报 ModuleNotFoundError 或 Command not found。

先明确一个核心概念:Sublime Text 本身并不运行 Django,它只是一个高效的编辑器。所有 python manage.py 相关的命令,都必须老老实实地交给系统终端去执行。那么,所谓的“配置环境”,其本质到底是什么呢?其实就是确保 Sublime Text 在需要时,能够准确无误地调用你项目所依赖的特定 Python 解释器、正确的工作目录以及对应的 Django 包。这三点缺一不可,否则,ModuleNotFoundError: No module named 'django' 或者 Command not found: django-admin 这类报错就会立刻找上门来。
为什么 Ctrl+B 运行 manage.py 总报错找不到 Django
这个问题困扰过不少开发者。根本原因其实很直接:Sublime Text 启动时所继承的 shell 环境,很可能没有加载你的虚拟环境,或者没有将 django-admin 所在的路径添加到系统的 PATH 变量中。这通常不是插件没装好,更不是 Sublime Text 本身有问题。
- Mac/Linux 用户尤其容易踩坑:当你双击图标启动 Sublime Text 时,它并不会自动读取
~/.zshrc或~/.bash_profile这些配置文件。这意味着,你在终端里通过source venv/bin/activate激活的虚拟环境,Sublime Text 完全“看不见”。 - Windows 用户的常见问题:在
cmd或powershell中没有先激活虚拟环境,就直接点开了 Sublime Text。 - 构建系统的配置问题:在构建系统里写的
["python", "manage.py", "runserver"],默认调用的往往是系统全局的 Python,而不是你项目venv目录下的那个解释器。
解决办法其实只有一个,而且非常有效:先在终端里激活你的虚拟环境,然后从这个已经激活的终端里启动 Sublime Text。例如,在终端中依次执行:
source myenv/bin/activate subl .
这样一来,Sublime Text 就能完整继承当前 shell 会话中的 PYTHONPATH 和 PATH 等环境变量。此时再按 Ctrl+B,它才会真正使用你已经安装了 Django 的那个 Python 解释器。
立即学习“Python免费学习笔记(深入)”;
如何写一个靠谱的 Django 构建系统(Django.sublime-build)
别去修改默认的 Python.sublime-build 文件。最佳实践是新建一个专用于 Django 项目的构建系统。这里的关键在于,要精确锁定解释器的路径和工作目录。
"cmd"是关键:必须使用绝对路径指向虚拟环境里的python解释器。例如:["/Users/you/myproject/venv/bin/python", "${project_path}/manage.py", "runserver"]。"working_dir"不能忘:必须设置为项目的根目录,也就是包含manage.py和settings.py的那一层。推荐直接使用"${project_path}"变量。"file_regex":保留默认的正则表达式即可,它的作用是让你在输出面板中点击错误信息时,能直接跳转到对应的文件和行号。- 扩展功能:如果你想一键运行
migrate或打开shell,直接复制一份这个构建系统文件,只修改"cmd"数组的最后一个参数就行了。
将这个文件保存为 Django.sublime-build。之后在你的项目中,通过 Tools → Build System → Django 切换到这个构建系统,再按 Ctrl+B,就能顺利启动开发服务器了。
怎么让 .html 文件自动识别为 Django 模板
Sublime Text 默认把 .html 文件当作普通 HTML 来处理,导致模板语法 {% if %} 和 {{ user.name }} 全都失去了高亮着色。这并非软件缺陷,而是默认的语法定义没有覆盖 Django 的扩展标签。
- 首选方案:通过 Package Control 搜索并安装官方维护的
HTML (Django Templates)语法包。 - 切换语法:安装后,打开任意
.html文件,点击编辑器右下角显示的语法名称(如“HTML”),然后选择HTML (Django Templates)。 - 永久生效:如果想一劳永逸,可以进入
Preferences → Settings – Syntax Specific,为.html文件指定默认语法:
{"extensions": ["html"], "syntax": "Packages/HTML/HTML (Django Templates).sublime-syntax"}
需要注意的是,像 {% load static %}、{% url %} 这类标签可能依然显示为灰色。这是因为语法高亮基于静态的正则匹配,无法动态解析你项目中加载的模板标签库。接受这一点,往往比花费大量时间折腾插件更为实际。
SideBarEnhancements 右键菜单为啥不显示 manage.py 相关命令
SideBarEnhancements 插件默认并不识别 manage.py 是 Django 项目的管理入口,它只提供通用的“在终端中打开”这类功能。想要通过右键菜单直接运行 Django 命令,需要手动进行配置。
- 常规操作:右键点击项目中的
manage.py文件,选择Open Terminal Here(macOS/Linux)或Open Command Prompt Here(Windows)。 - 手动输入:在打开的终端里,再手动输入
python manage.py runserver等命令。别指望插件能自动补全这些子命令。 - 进阶方案:如果非要实现右键一键运行,可以尝试配合 Terminus 插件并自定义命令,但这种方式稳定性较差且调试困难,对于日常开发而言,不如老老实实用终端来得可控。
其实,有一个更省事且可控的方式:使用 Ctrl+Shift+P 呼出命令面板,输入 Terminal: New Terminal(前提是安装了 Terminus 插件)。它会自动将终端的工作目录切换到当前文件所在位置,然后你再输入命令即可——这比依赖一个可能不稳定的右键菜单要可靠得多。
最后,分享一个最常被忽略的要点:Sublime Text 的项目配置文件(.sublime-project)功能强大。你可以在里面绑定专属的构建系统、设置 python_interpreter 的绝对路径,甚至指定不同开发环境的环境变量。如果只依赖全局设置或者临时修改构建系统,在多人协作或频繁切换项目时,非常容易导致环境错乱和报错。
