ctrl+b运行python必须手动指定虚拟环境路径,sublime text不会自动识别venv;windows用venv\scripts\python.exe,macos/linux用venv/bin/python,需加-u参数并正确设置working_dir或使用绝对路径。

Ctrl+B 运行必须手动写死虚拟环境的 python 路径
Sublime Text 不会自动识别 venv,更不会随项目切换解释器。你按 Ctrl+B 能否跑在虚拟环境里,只取决于当前选中的构建系统(.sublime-build)里 cmd 数组第一项是不是你虚拟环境里的真实 python 可执行文件路径。
常见错误现象:ModuleNotFoundError、明明 pip install requests 了却 import requests 报错——本质就是 Ctrl+B 还在调系统 Python,根本没进你的 venv。
- Windows 下路径必须是
venv\Scripts\python.exe(不是venv\python.exe或venv\Scripts\python.bat) - macOS/Linux 下路径必须是
venv/bin/python(不是venv/python或venv/bin/python3) - 路径含空格或中文时,整个字符串要用双引号包裹:
"C:/My Project/venv/Scripts/python.exe" - 务必保留
-u参数,否则input()卡住、print()缓冲不刷新
构建系统配置要区分绝对路径和相对路径
构建系统里写路径,用绝对路径最稳;但若想复用或迁移,可用相对路径,前提是工作目录(working_dir)设置正确。
例如项目结构为:myproject/venv/ 和 myproject/src/main.py,你想在 src/ 目录下运行 main.py,那么:
- 写绝对路径:
"cmd": ["C:/dev/myproject/venv/Scripts/python.exe", "-u", "$file"] - 写相对路径(推荐配合
working_dir):"cmd": ["./venv/Scripts/python.exe", "-u", "$file"],再加一行"working_dir": "$project_path" - 不要写
"./venv/bin/python"然后在子目录里按Ctrl+B—— 它会从当前文件所在目录找./venv/,大概率找不到
项目级绑定:用 .sublime-project 自动加载对应构建系统
多个项目各自有 venv,每次打开都要手动切构建系统?可以用项目文件把构建定义直接嵌进去,打开项目就自动可用。
操作很简单:菜单 Project → Save Project As…,生成 myproject.sublime-project,编辑内容:
{
"folders": [
{
"path": "."
}
],
"build_systems": [
{
"name": "Python-venv",
"cmd": ["./venv/bin/python", "-u", "$file"],
"file_regex": "^[ ]*File \"(.+?)\", line ([0-9]+)",
"selector": "source.python",
"working_dir": "$project_path"
}
]
}
注意点:
-
build_systems是数组,可放多个;但 Sublime 不会自动选中某一个,仍需手动在Tools → Build System里选“Python-venv” - 如果希望默认启用,得额外加
"selected": true字段(仅限 Sublime Text 4 build 4165+) - 路径依然要匹配你的 OS:Windows 用户这里得写
./venv/Scripts/python.exe
别指望 SublimeREPL 或 LSP 插件“同步”构建系统的解释器
SublimeREPL、LSP、Anaconda 等插件各自维护自己的 Python 解释器设置,和 Ctrl+B 完全无关。改了构建系统,REPL 还是用它自己配的 python_interpreter;反之亦然。
验证是否真进了虚拟环境,最直接的方法是在代码里加两行:
import sys print(sys.executable) print(sys.path)
输出的 sys.executable 必须是你 venv 里的路径,sys.path 第一项也得是 venv 的 site-packages 才算生效。
容易被忽略的是:不同插件的配置入口分散——SublimeREPL 在 Preferences → Package Settings → SublimeREPL → Settings 里设 python_virtual_env;LSP-Python 在 LSP.sublime-settings 里配 python.executable。它们和 .sublime-build 文件之间,没有任何自动联动。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











