leetcode插件在vscode中能跑通,但并非真正在线刷题,而是调用本地环境模拟判题;卡进度主因是leetcode.endpoint配错、leetcode_session过期或python/javac未入path。

直接说结论:LeetCode插件在VSCode里能跑通,但“在线刷题”是伪命题——它不真正在线执行,而是调用本地环境模拟判题;真正卡住你进度的,从来不是安装步骤,而是leetcode.endpoint配错、LEETCODE_SESSION过期、或本地python/javac没进PATH。
endpoint选错导致题目全是英文或登录失败
插件默认连的是leetcode.com,但国内用户账号注册在leetcode.cn,两者完全隔离。选错后表现是:登录成功但列表空、点击题目报401 Unauthorized、或者题目描述全英文且ID对不上。
- 必须手动改
settings.json,加这行:"leetcode.endpoint": "leetcode-cn" - 改完别忘了重启VSCode——插件不会热重载endpoint配置
- 如果之前用错endpoint登过,先去
~/.vscode/extensions/leetcode.vscode-leetcode-*/out/删掉cache目录,否则旧token会干扰新登录
Cookie登录比账号密码更稳,但容易漏关键字段
力扣现在基本屏蔽了密码直连,推荐用Cookie方式。但只复制LEETCODE_SESSION不够,csrftoken也必须一起填——缺一个就会提示Invalid CSRF token。
- 浏览器F12 → Application → Cookies → 找到
LEETCODE_SESSION和csrftoken两行值 - VSCode里按
Ctrl+Shift+P→ 输入LeetCode: Login with Cookie→ 粘贴两个值(顺序无关) - 粘完立刻点插件侧边栏的刷新按钮,别等自动同步——有时状态栏显示“Signed in”但实际没生效
test命令报错“command not found”本质是环境没配好
LeetCode: Test不是调服务器,而是起个本地进程跑你的代码。所以python3命令找不到、g++版本太低、或java没装JDK,都会直接崩在shell里,报/bin/sh: python3: command not found这类错误。
- Windows用户检查
python --version能否在终端里运行,不行就去系统环境变量把Python路径加进PATH - Mac/Linux用户注意:M1/M2芯片默认
python3可能指向Homebrew安装的版本,但插件读的是which python3结果,确保一致 - Java用户必须装JDK 11+,且
javac -version能输出,光装JRE不行
filePath模板里${kebab-case-name}和${snake-case-name}别混用
文件名模板看着灵活,但${kebab-case-name}(如two-sum)和${snake-case-name}(如two_sum)生成逻辑不同,插件内部处理路径时对连字符敏感。用错会导致新建题目时文件名变成1..py或直接创建失败。
- Windows路径分隔符是
\,但插件配置里一律用/(VSCode跨平台抽象层要求) - 如果想按难度建子目录,
"folder": "${difficulty}/${id}.${kebab-case-name}"是安全写法 - 避免在
filename里用${title}——中文题名含特殊字符(如《》、空格),Windows下会创建失败
最常被跳过的其实是调试环节:插件本身不带断点功能,得额外装Debug LeetCode插件并手动配launch.json。没这步,你永远只能靠print()硬 debug。











