M1 Mac安装pyglet后导入仍提示ModuleNotFoundError问题求助
M1 Mac 下 pyglet 安装成功但导入报错的解决思路
核心原因绝大多数为安装包的目标Python环境,与运行脚本调用的Python环境不匹配,可按以下步骤逐一排查:
- 第一步:确认运行脚本使用的Python解释器路径
打开终端,输入你平时运行脚本的对应命令打印路径,例如:
若使用python3启动脚本,执行which python3
若使用python启动脚本,执行which python
若使用conda虚拟环境,先激活对应环境后再执行which python
记录输出的完整路径,例如/opt/homebrew/miniforge/base/bin/python3.9 - 第二步:核对包安装路径与解释器是否匹配
用第一步得到的完整Python路径执行以下命令,核对是否已安装pyglet:
例如上一步得到的路径是替换为你自己的Python路径 -m pip list | grep pyglet/opt/homebrew/miniforge/base/bin/python3.9,就执行:
若没有输出pyglet的版本信息,说明此前的pip/conda命令把包装到了其他环境,直接用当前解释器关联的pip安装即可:/opt/homebrew/miniforge/base/bin/python3.9 -m pip list | grep pyglet/opt/homebrew/miniforge/base/bin/python3.9 -m pip install pyglet==1.5.21 - 第三步:检查IDE解释器配置
如果你用PyCharm、VSCode等IDE运行脚本,手动确认IDE配置的Python解释器路径和第一步得到的路径完全一致,IDE经常会默认选择其他环境的解释器导致找不到包。 - 第四步:排查架构兼容问题
如果上述步骤都无效,检查是否存在架构不匹配的情况:- 执行
python -c "import platform;print(platform.machine())",若输出arm64说明是原生M1架构Python,若输出x86_64说明是Rosetta转译下的Python - 如果你用conda安装包,确认你安装的conda版本和Python架构一致,不要用x86版本的conda给arm64的Python装包,也不要用arm版本的conda给x86转译的Python装包
- 可以尝试关闭终端的Rosetta转译,重启终端后重新安装pyglet测试
- 执行
内容的提问来源于stack exchange,提问作者Matt00n
相关产品推荐
相关产品推荐

