Mac M1运行Arcade报错No module named 'pymunkoptions' 求解决方案
MacBook M1 运行Arcade报
pymunkoptions缺失的解决方法 方案1:不改动依赖版本,直接修复报错
报错的根源是Arcade 2.4.3使用了旧版Pymunk已废弃的pymunkoptions模块,这个模块的作用只是关闭Pymunk的调试日志,你可以二选一修复:
- 方法A(无侵入,推荐):在你的项目入口文件(比如
__main__.py)最顶部加入以下代码,在导入Arcade相关内容前先模拟出pymunkoptions模块:
import sys # 模拟废弃的pymunkoptions模块 sys.modules['pymunkoptions'] = type('mock_pymunkoptions', (), { 'options': {'debug': False} })() # 后续再写你原有的导入逻辑,比如 from game.director import Director
- 方法B:修改Arcade源码。打开路径
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/arcade/drawing_support.py,将第7行的import pymunkoptions替换为以下内容:
import pymunk pymunk.options.update({'debug': False})
两种方法都能直接解决ModuleNotFoundError报错,不需要改动你现有Pymunk、Shapely的版本。
方案2:升级到最新版Arcade,解决Shapely架构兼容问题
如果需要用新版Arcade的功能,可以绕开M1原生pip对Shapely的版本限制:
- 路径A:使用Rosetta 2运行x86版本Python。右键点击终端应用,选择「显示简介」,勾选「使用Rosetta打开」,重启终端后重新安装Python环境,直接执行
pip install arcade==2.6.5即可自动安装匹配版本的Shapely,运行普通Arcade项目的性能损失可以忽略。 - 路径B:使用miniforge安装原生arm64适配的依赖。安装arm64版本的miniforge后,创建虚拟环境先执行
conda install shapely安装适配M1的高版本Shapely,再执行pip install arcade即可安装最新版Arcade,原生运行性能更好。
内容的提问来源于stack exchange,提问作者Ryan Brower
相关产品推荐
相关产品推荐

