1. VS Code 里 Python 跑不起来,多半卡在这三个地方
Visual Studio Code 运行 Python 报错,最常见的表现就三种:右下角状态栏显示「未选择解释器」、终端里敲python提示「不是内部或外部命令」、点运行按钮后弹出一行红字说找不到模块或解释器路径。这三个现象看着不一样,根子其实都落在同一件事上——VS Code 不知道你机器上的 Python 到底装在哪,终端也不知道。
我平时做本地开发环境初始化,最怕的不是代码写错,而是环境没对齐。VS Code 本身只是个编辑器,它不会自动帮你找 Python,得你手动告诉它解释器在哪;而集成终端又是另一套逻辑,它读的是系统 PATH,跟 VS Code 设置里选的那个解释器不一定是同一个。所以经常出现「设置里选好了,终端里还是老版本」这种错位。
这篇就按「解释器选择 → PATH 校验 → settings.json 固化 → 发请求验证」这条链路走一遍,面向的是刚装完 Python、准备在 VS Code 里跑第一个脚本的场景。你会拿到一份可以直接抄的 settings.json 骨架、几条 PATH 校验命令,以及一套逐步验证动作。顺带说一句,如果你后面要接大模型 API 做调试,统一 Key 能省掉不少环境变量来回改的麻烦,这个放在第三节讲。
2. 先把解释器和 PATH 这两件事分清楚
2.1 解释器选择:VS Code 内部的事
VS Code 的 Python 扩展维护了一个「解释器列表」,你按Ctrl+Shift+P输入Python: Select Interpreter,它会扫描几个常见位置:系统 PATH 里的 python、虚拟环境目录、conda 环境、以及 Windows 上AppData\Local\Programs\Python下的安装。选中之后,这个路径会写进当前工作区的.vscode/settings.json或者用户级设置里,键名是python.defaultInterpreterPath。
注意这里有个坑:老版本用的是python.pythonPath,新版本已经废弃了。你要是从旧教程抄了python.pythonPath,扩展会提示未知配置项,然后解释器还是没选上。所以下面给的骨架统一用新键名。
2.2 PATH 校验:终端和系统的事
PATH 是操作系统级的环境变量,终端启动时读它。VS Code 的集成终端默认继承系统 PATH,但如果你在设置里改过terminal.integrated.env.windows,或者用了某些 shell 配置,就可能跟系统不一致。校验方法很简单,在 VS Code 集成终端里敲:
where pythonWindows 上用where,macOS/Linux 上用which python。输出会有多行,第一行就是终端实际会调用的那个。如果这里输出的路径,跟你在Select Interpreter里选的不是同一个,那运行结果就可能对不上。
2.3 两者的关系
打个比方:解释器选择是告诉 VS Code「我写代码时按这个版本做语法提示和调试」,PATH 是告诉终端「你敲 python 时执行哪个」。两者可以指向同一个,也可以不同。最稳的做法是让它们一致,然后在 settings.json 里把解释器路径写死,避免每次开新窗口都要重选。
3. TaoToken 前置:统一 Key 与环境变量
如果你只是跑本地脚本,这一节可以先跳过;但如果你要在 VS Code 里调试调用大模型的代码,那环境变量管理就是绕不开的一环。传统做法是每个项目建一个.env,里面塞OPENAI_API_KEY、ANTHROPIC_API_KEY一堆,换项目就得改,还容易把 Key 提交到仓库。
TaoToken 的思路是给一个统一的 Key,通过兼容接口去调不同模型。这样你在 VS Code 里只需要维护一个环境变量,代码里改base_url和model就行。接入地址是https://taotoken.net/api,Key 在控制台的 API Keys 页面生成。
具体操作:打开 API Keys 页面,新建一个 Key,复制出来。然后在系统环境变量里加一条,变量名比如TAOTOKEN_API_KEY,值就是刚复制的。加完之后必须重启 VS Code,因为集成终端只在启动时读一次环境变量,不重启是读不到的。
验证环境变量有没有生效,在集成终端里敲:
echo $env:TAOTOKEN_API_KEYPowerShell 用上面这个,cmd 用echo %TAOTOKEN_API_KEY%,macOS/Linux 用echo $TAOTOKEN_API_KEY。能打印出你的 Key 就说明生效了。这一步看着简单,但很多人卡在这,就是因为没重启编辑器。
4. 可复制配置:settings.json 骨架与 PATH 校验命令
4.1 settings.json 骨架
在项目根目录建.vscode/settings.json,内容如下。把python.defaultInterpreterPath换成你自己机器上的实际路径,Windows 注意用双反斜杠或者正斜杠:
{ "python.defaultInterpreterPath": "C:/Users/你的用户名/AppData/Local/Programs/Python/Python312/python.exe", "python.terminal.activateEnvironment": true, "terminal.integrated.env.windows": { "TAOTOKEN_API_KEY": "你的Key" }, "terminal.integrated.defaultProfile.windows": "PowerShell", "python.analysis.extraPaths": [], "editor.formatOnSave": true }几个键的说明:
| 键名 | 作用 | 注意 |
|---|---|---|
python.defaultInterpreterPath | 指定默认解释器 | 新版本用这个,别用python.pythonPath |
python.terminal.activateEnvironment | 终端自动激活虚拟环境 | 用 venv 时建议开 |
terminal.integrated.env.windows | 给集成终端注入环境变量 | 只影响 VS Code 终端,不影响系统 |
terminal.integrated.defaultProfile.windows | 指定默认 shell | 避免 cmd 和 PowerShell 混用导致 PATH 不一致 |
如果你不想把 Key 写进 settings.json(毕竟这个文件可能进版本库),那就用系统环境变量,settings.json 里只留解释器路径那几行。
4.2 PATH 校验命令
在集成终端里依次跑这几条,把结果对一遍:
where python python --version python -c "import sys; print(sys.executable)"第一条看终端认哪个 python,第二条看版本,第三条看 Python 自己认为自己是谁。三条输出的路径应该一致。如果不一致,说明 PATH 里有多个 Python,顺序不对。
再看 VS Code 选的是哪个:Ctrl+Shift+P→Python: Select Interpreter,列表里会标出当前选中的那个,路径跟上面sys.executable对一下。
4.3 虚拟环境的情况
如果你用 venv,激活后sys.executable会指向 venv 里的 python。这时候 settings.json 里的python.defaultInterpreterPath应该指向 venv 的 python,而不是系统那个。创建和激活:
python -m venv .venv .venv\Scripts\activate激活后终端提示符前面会有(.venv),这时候再跑where python,第一行应该是.venv\Scripts\python.exe。
5. 验证请求:跑通第一个脚本和一次 API 调用
5.1 本地脚本验证
建一个hello.py:
import sys print("解释器路径:", sys.executable) print("Python 版本:", sys.version)在 VS Code 里点右上角运行按钮,或者终端里python hello.py。输出里解释器路径应该跟你设置的一致。这一步过了,说明解释器和 PATH 对齐了。
5.2 API 调用验证
装一下 requests:
pip install requests然后写个测试脚本,用统一 Key 发一次请求。注意base_url用https://taotoken.net/api,模型名按你实际要调的填:
import os import requests api_key = os.environ.get("TAOTOKEN_API_KEY") if not api_key: raise SystemExit("环境变量 TAOTOKEN_API_KEY 没读到,检查是否重启了 VS Code") resp = requests.post( "https://taotoken.net/api/v1/chat/completions", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", }, json={ "model": "gpt-4o-mini", "messages": [{"role": "user", "content": "只回复两个字:通了"}], }, timeout=30, ) print("状态码:", resp.status_code) print("返回:", resp.json()["choices"][0]["message"]["content"])跑通的话会打印状态码 200 和「通了」。如果报 401,多半是 Key 没读到或者复制时带了空格;报 404 检查一下 URL 拼写。想先在网页上确认模型可用,可以去模型对话页面手动发一条试试。
5.3 长期编码场景
如果你打算在 VS Code 里长期用 AI 辅助写代码,而不是每次手写请求,那可以考虑 Coding Plan,配合 Continue、Cline 这类插件,把 base_url 和 Key 填进去就能用。插件配置里同样填https://taotoken.net/api,Key 填你生成的那个。
6. 本篇常见错排查
6.1 报错「Python is not installed」但明明装了
先跑where python,如果没输出,说明安装时没勾「Add Python to PATH」。重新跑安装包,选 Modify,把 PATH 选项勾上。或者手动把C:\Users\你的用户名\AppData\Local\Programs\Python\Python3xx\和它下面的Scripts\加进系统环境变量 Path,加完重启 VS Code。
6.2 终端里 python 版本和设置里选的不一样
这是 PATH 顺序问题。where python输出多行时,第一行优先。如果第一行是 Windows 自带的WindowsApps\python.exe(微软商店的占位符),那就会出问题。解决办法是在「设置 → 应用 → 高级应用设置 → 应用执行别名」里,把 python 和 python3 那两个别名关掉,然后重启终端。
6.3 settings.json 改了没生效
检查两点:一是文件位置对不对,工作区级的是.vscode/settings.json,用户级的是Ctrl+Shift+P→Preferences: Open User Settings (JSON);二是键名有没有写错,python.pythonPath已经废弃,写了也不报错但不生效。改完保存,Ctrl+Shift+P→Developer: Reload Window重载一下。
6.4 环境变量读不到
最常见的原因是没重启 VS Code。集成终端只在启动时读环境变量,你在系统里加完,得把整个 VS Code 关掉再开,不是关终端标签页。另一个原因是你在 settings.json 的terminal.integrated.env.windows里也写了同名变量,两处冲突时以 settings.json 为准,检查一下有没有写错值。
6.5 虚拟环境激活失败
PowerShell 默认禁止运行脚本,激活 venv 时会报无法加载文件 activate.ps1。以管理员身份开 PowerShell,跑一次Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser,然后重新激活。或者把默认终端切成 cmd,cmd 没这个限制。
6.6 运行按钮和终端结果不一致
运行按钮走的是 VS Code 内部的调试器,用的是python.defaultInterpreterPath;终端走的是 PATH。两者不一致时,以你实际要用的那个为准,然后把另一个对齐。最省事的做法就是 settings.json 里写死解释器路径,终端里用 venv 激活,两边都指向同一个 python。
排查完这些,基本能覆盖本地开发环境初始化阶段 90% 的 Python 运行问题。剩下的多半是具体库的依赖冲突,那属于另一个话题了。