Pygame应安装在何处?MacOS下Python模块无法识别求助
解决OSX Sierra下Python 3.6无法识别Pygame/Pillow的问题
你遇到的核心问题其实是Python版本不匹配,再加上手动移动模块破坏了包结构导致的异常,下面一步步帮你理清并解决:
1. 先确认你正在运行的Python版本
OSX系统默认自带Python 2.x,很多人会不小心用python命令启动系统默认版本,而不是你安装的3.6版本。打开终端:
- 输入
python --version,看看是不是显示2.x版本 - 输入
python3 --version,确认是不是你安装的3.6.5
如果你的代码是用python命令运行的,那自然找不到pip3给Python 3.6安装的模块,必须用python3来启动你的程序。
2. 确认pip3对应的Python版本
输入pip3 --version,输出里会显示它关联的Python路径,比如:
pip 21.0.1 from /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip (python 3.6)
如果这里显示的不是3.6,说明你的pip3可能绑定到了其他Python版本,这时可以用指定版本的pip来重新安装:
python3.6 -m pip install pygame pillow
3. 查看Python 3.6的默认模块查找路径
要知道Python 3.6默认去哪里找模块,在终端运行这条命令:
python3.6 -c "import sys; print('\n'.join(sys.path))"
输出里会列出所有优先级从高到低的路径,其中就包含你提到的/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages——这其实就是Python 3.6的默认site-packages目录,你完全不需要手动移动模块,pip3已经把它们装到了正确的位置!
4. 为什么手动移动模块会报错?
你遇到的from pygame.base import *错误,是因为Pygame是一个有内部依赖的完整包,手动移动单个文件或文件夹会破坏它的目录结构,导致包内部的导入逻辑失效。永远不要手动移动已安装的Python模块,用pip工具管理才是正确的做法。
5. 验证安装是否成功
在终端运行以下命令,如果没有报错,就说明模块已经能被正确识别了:
python3.6 -c "import pygame; import PIL; print('Pygame and Pillow are installed correctly!')"
内容的提问来源于stack exchange,提问作者GidB
相关产品推荐
相关产品推荐

