anaconda 与 pylinter(或 sublimelinter)不能共存,因二者独立启动 lint 进程、重复报错、高亮冲突、补全卡死;推荐彻底卸载 anaconda,改用 pylsp 实现现代 python 语法支持。

Sublime Text 里 Anaconda 和 Pylinter(或 SublimeLinter)同时启用,必然冲突——不是配置没调好,是两者根本不能共存。 它们各自启动独立的 lint 进程、监听同一文件、用不同规则报告错误,结果就是重复报错、白框乱跳、状态栏提示打架,甚至补全卡死。强行“调参数”只会让问题更隐蔽,不如直接拆解清楚该留谁、该关谁。
为什么 Anaconda + Pylinter 一起开必出问题
两者都试图做同一件事:实时检查 Python 语法和风格,但底层机制完全不同:
- Anaconda 自带
pyflakes+pep8(旧版),硬编码解析器路径,不识别虚拟环境,也不支持from __future__ import annotations或int | str - Pylinter(或更常见的
SublimeLinter-pylint)调用系统级pylint命令,依赖你本地安装的版本,能读.pylintrc,但无法自动切换项目环境 - 它们的错误高亮区域、悬停提示、右键菜单项全部重叠,Sublime 不会智能合并,只会叠加渲染——所以你会看到同一行被标红两次,或者
Ctrl+Click跳转时随机失败
关闭 Anaconda 的 lint,只留补全(最简方案)
如果你只是想保留函数提示、参数补全、F12 跳转,又不想动大架构,就彻底禁掉 Anaconda 的 lint 功能:
- 打开
Preferences → Package Settings → Anaconda → Settings - User - 写入:
{"anaconda_linting": false, "enable_linting": false, "linting_enabled": false} - 删掉或注释掉所有含
"lint"的字段,比如"linting_preference"、"pep8_ignore" - 重启 Sublime,确认右下角状态栏不再显示
anaconda: linting字样
彻底卸载 Anaconda,改用 pylsp(推荐方案)
截至 2026 年,Anaconda 插件已标记为 Deprecated,底层 jedi 0.17 解析器无法处理 f-string 内部变量补全、泛型类型(如 Dict[str, list[int]])、PEP 604 联合类型等现代语法。继续用它,等于主动放弃类型提示、精准跳转和可靠补全。
- 用
Package Control → Remove Package卸载Anaconda - 终端执行:
pip install --user python-lsp-server(conda 用户用:conda install -c conda-forge python-lsp-server) - 安装
SublimeLinter和SublimeLinter-pylsp两个插件 - 项目根目录放一个
.pylsp文件,内容为:{"plugins": {"jedi_completion": {"enabled": true}}} - 打开
.py文件,右下角应显示pylsp,且from typing import List后输入List[会正确补全类型
如果非要用 Pylinter(比如团队强制要求 pylint 规则)
那就必须把 Anaconda 彻底关死,连基础补全都不要它管——否则 pylsp 和 pylinter 会抢着发诊断,Sublime 渲染层直接崩溃:
- 确保
Anaconda的Settings - User中只有:{"disable_anaconda_completion": true, "anaconda_linting": false} - 在
SublimeLinter设置中指定pylint可执行路径:"executable": "/path/to/venv/bin/pylint"(macOS/Linux)或"executable": "C:\path\to\venv\Scripts\pylint.exe"(Windows) - 项目根目录加
.pylintrc,避免默认检查R(重构建议)和C(约定)类警告,否则满屏白框又回来 - 别信 “忽略 R,C,W” 配置能治本——那是掩耳盗铃,
pylinter仍会启动进程、占 CPU、拖慢保存响应
真正麻烦的从来不是怎么配,而是意识到 Anaconda 已经是个技术包袱。它不会因为你多加一行 "ignore": ["R"] 就变靠谱,只会让你在某个用上 Self 类型或 Literal 注解的下午,突然发现所有跳转都失效了——而那时你翻遍设置也找不到原因。











