必须手动标记为Excluded,因为PyCharm索引模块不读取.gitignore或settings.json等配置文件,仅识别UI操作写入.idea/modules.xml的<excludefolder>标签及Project Structure中显式设置的Excluded列表。

PyCharm 运行程序本身不会因文件夹未排除而失败,但“一直卡在 Updating indexing”或补全/跳转变慢,几乎全是虚拟环境目录(如 venv、.venv、env)被错误索引导致的。
为什么必须手动标记为 Excluded,而不是靠 .gitignore 或配置文件?
PyCharm 的索引模块不读取 .gitignore,也不解析 settings.json 或 .idea/misc.xml 里的路径排除逻辑。它只认两种来源:
- UI 操作触发的标记(写入
.idea/modules.xml中的<excludefolder url="file://$MODULE_DIR$/venv"></excludefolder>) - Project Structure 对话框中显式设置的 Excluded 列表
有人删掉 .idea/misc.xml 里的 <component name="excludedUrls"> 节点,或往 VS Code 配置里加 Python 排除项——这些对 PyCharm 完全无效。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
右键 Mark Directory as → Excluded 的实操要点
这个操作看似简单,但容易踩几个关键坑:
- 必须在项目视图(Project tool window)里右键目标文件夹,不是在文件系统里右键 —— IDE 外部操作不生效
- 常见需排除的目录:
venv、.venv、env、.env、node_modules(如果混用 JS)、__pycache__(一般自动忽略,但有时残留) - 若用 Poetry,默认生成
.venv;Pipenv 也放.venv;Conda 环境若手动复制进项目根目录,同样要排除 - 排除后图标会变灰,但索引不会立刻停止 —— 必须重启 PyCharm 或执行
File → Reload project from disk,否则旧索引残留仍在后台跑
如何验证是否真正排除成功?
光看图标不够,得确认索引行为已停止:
- 打开
File → Project Structure → Modules,检查 Sources 和 Excluded 列表,确保venv类路径没混进 Sources - 启用索引日志:
Help → Diagnostic Tools → Debug Log Settings,输入#com.intellij.util.indexing,然后在日志里搜venv或具体路径名 —— 如果还出现扫描记录,说明没生效 - 观察右下角状态栏:索引进度条消失、CPU 占用回落、代码跳转响应变快,才是真实生效信号
最常被忽略的一点:排除 venv 不影响调试和解释器功能,但你要确保自己的源码目录(比如 src 或 app)被正确标记为 Sources,否则 import 提示 unresolved reference 就不是索引问题,而是源码根目录没设对。

















