MacBook安装gem5模拟器遇python2.7库缺失问题求助
我之前在M1 MacBook上折腾gem5的时候也碰到过几乎一模一样的报错,给你几个亲测有效的解决方向,你可以挨个试试:
确认Python 2.7的安装与链接
macOS现在默认已经移除了Python 2,你用brew安装的应该是python@2(注意brew里Python 2的包名是python@2,不是python-dev)。先检查是否真的装好了对应的库:ls /usr/local/lib | grep python2.7如果没有输出,先重新安装Python 2.7:
brew reinstall python@2然后编译时手动指定Python路径给scons,避免它找错版本:
scons PYTHON=/usr/local/bin/python2.7 build/X86/gem5.opt(这里的
build/X86可以换成你需要的架构,比如ARM架构就用build/ARM)切换到支持Python 3的gem5版本
如果你不需要特定的旧版gem5,强烈建议直接用支持Python 3的新版本(gem5 v21及以后的版本都支持)。旧版依赖Python 2的问题在新分支里已经完全解决了。
克隆最新版gem5后,直接用系统默认的Python 3编译:git clone https://github.com/gem5/gem5.git cd gem5 scons PYTHON=/usr/bin/python3 build/X86/gem5.opt -j$(sysctl -n hw.ncpu)-j后面的参数是利用所有CPU核心加速编译,能大幅提升速度。手动指定Python 2的库路径
如果必须用依赖Python 2的旧gem5版本,可能是scons没找到Python 2的头文件和库路径。先设置环境变量指定路径:export LDFLAGS="-L/usr/local/opt/python@2/lib" export CPPFLAGS="-I/usr/local/opt/python@2/include/python2.7"设置完再执行scons编译命令,这样scons就能正确找到需要的库了。
检查scons的Python版本
有时候scons本身是用Python 3运行的,这会导致它查找Python 2库时出现冲突。先看看你的scons用的是哪个Python版本:scons --version如果显示是Python 3,你可以安装一个基于Python 2的scons版本:
pip2 install scons然后用这个Python 2版本的scons来编译,比如路径可能是
/usr/local/bin/scons(取决于pip2的安装路径)。
内容的提问来源于stack exchange,提问作者Joe Jack

