小P学长
小P学长

PyCharm 报 No module named,终端却能运行:先对齐解释器和 pip

不要先重复安装依赖。用 sys.executable、python -m pip show、运行配置和工作目录定位 PyCharm 与终端是否使用了不同环境。

先判断:包没安装,还是安装到了另一个 Python

同一台电脑可以同时有系统 Python、Homebrew/Windows Store Python、Conda 和多个 .venv。命令行里的 pip install 成功,只能证明某个 pip 安装了包,不能证明 PyCharm 正在使用同一个解释器。

1. 先取两份可对比证据

在外部终端和 PyCharm 的 Run 窗口分别运行:

import os, sys
print("python:", sys.executable)
print("version:", sys.version)
print("cwd:", os.getcwd())
print("path0:", sys.path[0])

再在两个环境分别执行 python -m pip --versionpython -m pip show 包名。pip 官方文档说明,python -m pip 会让 pip 由你指定的那个 Python 执行;pip show 还会显示包的 Location。

2. 按差异修复

  • sys.executable 不同:在 PyCharm 状态栏的 Python Interpreter 选择项目真正要用的解释器,或为项目新建虚拟环境。
  • 解释器相同,show 找不到:使用该解释器的 -m pip install 安装,不要依赖 PATH 中的裸 pip
  • 第三方包能导入,自己的模块不能:检查 Run/Debug Configuration 的 working directory、源码根目录与包结构,不要通过在脚本里硬编绝对 sys.path 来掩盖项目结构问题。

3. 验收标准

  1. Run 窗口与预期环境的 sys.executable 相同。
  2. python -m pip show 显示的 Location 属于该解释器。
  3. 从干净启动的 PyCharm 重跑成功,不需要临时改 PATH 或手改 sys.path。

官方来源

同一问题集群的免费排障页

按你当前看到的报错选一页,不需要从头阅读全部内容。