明明已经用 pip 安装好了一个Python模块,

但在代码里 import 的时候,解释器却甩出一张红牌:

import pygame
# ModuleNotFoundError: No module named 'pygame'
这种情况十有八九是因为:你安装模块时用的 pip,和你执行代码时用的 python,并不属于同一个Python环境。
同一台电脑上还能有多个Python?
没错。一台电脑不仅可以并排装好几个Python版本,即使同一个版本也能克隆出多个虚拟环境。(参考:为什么你的python版本一团糟?因为少了这个操作)

就拿 PyCharm 来说,新建项目时经常会顺便帮你创建一个全新的虚拟环境:

(参考:[新手向视频]新版PyCharm创建项目为什么会有问题)
虚拟环境的设计初衷是为了让不同项目之间的模块版本互不干扰。但坏消息是,你在其他环境下装好的库,一到这里就“隐身”了。
想要确认的话,可以先敲一下 pip -V,看看安装时挂靠的是哪个Python环境:

再对比执行代码时用的 Python 环境:

如果还拿不准执行环境,直接在代码里输出 sys.executable 就能见分晓:
import sys
print(sys.executable)

只要确保安装和执行是同一个环境,ModuleNotFoundError 这种烦恼就消失了。
要是还报错?那八成是别的原因——比如,你是不是把模块名打错了?
|