Anaconda 插件已废弃,因底层 jedi 0.17 不支持 f-string、泛型等现代语法,导致补全失效、报错频发;推荐改用 SublimeLinter + pylsp 组合,基于 LSP 协议,自动识别虚拟环境,支持类型提示、联合类型和精准 lint。

Anaconda 插件在 Sublime Text 中已不推荐用于新项目——它早在 2021 年被作者标记为 Deprecated,底层 jedi 版本(0.17)无法正确解析 f-string、类型变量(TypeVar)、<strong>future</strong> 注解,补全和 lint 常常失效或报错。
如果你只是想让 Python 开发有靠谱的补全、跳转、错误提示,直接用 SublimeLinter + pylsp 组合,比硬扛 Anaconda 省心得多。
为什么 Anaconda 插件现在大概率会失效
这不是你配错了路径,而是插件本身的技术债已不可逆:
-
AttributeError: 'CompiledNode' object has no attribute 'infer'——jedi内部解析失败,常见于带泛型的Dict[str, int]或def foo(x: list[int]) -> None: -
requests.get(按Tab不出参数签名,np.array(不提示 dtype 参数 - Windows 下频繁抛
UnicodeDecodeError,因插件硬编码cp1252读源码 - macOS M1 用户即使填对
/opt/homebrew/bin/python3,补全仍卡在 “Loading…” —— 因它不支持现代python-lsp-server协议
这些不是配置问题,是架构过时。强行修复只会拖慢编辑器、掩盖真实环境问题。
立即学习“Python免费学习笔记(深入)”;
替代方案:用 SublimeLinter + pylsp(推荐)
这是目前 Sublime Text 上最稳定、兼容性最好、且真正基于 LSP 的 Python 开发体验:
- 不依赖插件内置解释器路径,自动识别当前文件所在目录的
venv、poetry、conda环境 - 支持 f-string 补全、类型提示跳转、
from __future__ import annotations、PEP 604 联合类型(int | str) - 错误提示来自
pylint/pyflakes/mypy(可选),比Anaconda的pyflakes更准
实操步骤:
- 通过 Package Control 安装
SublimeLinter和SublimeLinter-pylsp - 终端执行:
pip install --user python-lsp-server(如用 conda:conda install -c conda-forge python-lsp-server) - 若项目有虚拟环境,在项目根目录放一个
.pylsp文件,内容为:{ "plugins": { "jedi_completion": { "enabled": true } } } - 重启 Sublime,打开
.py文件,右下角状态栏应显示pylsp,而不是anaconda或空白
如果非要用 Anaconda(仅限遗留项目)
必须切断自动更新、锁定旧版、关闭 lint、只留基础补全:
- 卸载当前
Anaconda插件(Package Control → Remove Package) - 手动下载 GitHub Release 页面的
anaconda-3.0.21.zip(这是最后一个广泛验证可用的版本) - 解压后重命名为
Anaconda,放入Packages/目录(路径:Sublime Text/Packages/Anaconda) - 打开
Preferences → Package Settings → Anaconda → Settings,填入最小化配置:{ "python_interpreter": "/your/real/python/path", "enable_autocompletion": true, "anaconda_linting": false } - 务必禁用所有其他 LSP 插件(如
LSP、LSP-pyright),否则会抢夺端口导致崩溃
注意:python_interpreter 必须指向真实二进制(不是 python 别名或软链接),可用 which python3 或 pyenv which python 确认。
最容易被忽略的冲突点:Sublime Text 4 自带 LSP
Sublime Text 4 默认启用内置 LSP 支持,哪怕你没装任何 LSP 插件,它也可能悄悄启动一个空服务,与 Anaconda 或 pylsp 抢占 localhost:2087 端口,导致补全延迟数秒甚至完全无响应。
检查方法:打开命令面板(Ctrl+Shift+P),输入 LSP: Toggle Server,看是否能切换;或查看右下角状态栏是否有 LSP 字样。
解决办法只有两个:
- 彻底删除
Packages/LSP/目录(Linux/macOS 在~/.config/sublime-text-4/Packages/LSP/,Windows 在%APPDATA%\Sublime Text 4\Packages\LSP\) - 或在
Preferences → Settings – User中加一行:"lsp_disabled": true
这个点不处理,其他所有配置都白搭。
















