MacBook已正确安装pygame但Jupyter notebook无法导入问题求助
问题根源
你遇到的问题本质是多个Python环境隔离导致的库路径不匹配,分两种场景:
- 最初终端全场景报错是因为你混用了Python2和Python3的包管理工具:
pip对应系统自带的Python2.7,pip3才对应你安装的Python3.x,早期用pip安装的pygame仅对Python2生效,你调用python时默认启动Python2也会找不到给Python3装的pygame。 - 后续终端python3可导入、Jupyter无法导入,是因为Jupyter内核绑定的Python解释器,和你终端用的python3不属于同一个环境:从你给出的PATH可以看到你设备上同时存在conda环境的Python、用户目录安装的Python3.9两个独立环境,你把pygame装到了Python3.9的site-packages下,但Jupyter默认用的是conda base环境的Python内核,该环境下没有安装pygame。
解决步骤
第一步:确认环境差异
- 终端执行命令查看Python3路径:
which python3 - 在Jupyter Notebook的代码单元格中执行如下代码,查看内核对应的Python路径:
import sys print(sys.executable)
两者输出的路径不一致即可验证是环境不匹配问题。
第二步:按需选择修复方案
方案1:给Jupyter当前内核安装pygame
直接在Jupyter的代码单元格中执行以下命令,就会将pygame安装到当前内核对应的Python环境中,无需切换环境:
!pip install pygame
安装完成后重启Jupyter内核即可正常导入。
方案2:将终端可用的Python3.9添加为Jupyter内核
如果你希望Jupyter用和终端完全一致的Python环境,可以执行以下操作:
- 终端执行命令给Python3.9安装ipykernel依赖:
python3 -m pip install ipykernel - 终端执行命令将该Python添加为Jupyter可选内核:
python3 -m ipykernel install --user --name=python3.9-pygame - 重启Jupyter,新建笔记本时选择
python3.9-pygame内核即可正常导入pygame。
额外注意事项
如果后续需要在终端默认用Python3,可在自己的用户目录下的.zshrc(如果是bash则是.bash_profile)文件中添加别名:alias python="python3"、alias pip="pip3",避免再出现Python2和3混用的问题。
内容的提问来源于stack exchange,提问作者Ahmed Elashry
相关产品推荐
相关产品推荐

