gem5编译报错需Python3.6+却检测到2.7,本机Python版本为3.6
问题原因
该报错检测的是Python开发库版本,而非终端默认绑定的Python可执行文件版本:你终端执行python --version返回3.6.7,仅说明python软链接指向Python3.6可执行文件,但系统默认的Python开发头文件、动态链接库仍为Python2.7版本,导致gem5构建脚本检测失败。
报错原文:Embedded python library 3.6 or newer required, found 2.7.17.
解决方案
第一步:安装对应版本的Python3开发包
Debian/Ubuntu系列系统执行:sudo apt install python3.6-dev python3-pip
CentOS/RHEL系列系统执行:sudo yum install python36-devel python3-pip第二步:显式指定gem5构建使用的Python路径
执行scons构建命令时,直接指定Python3路径避免自动检测到Python2:scons build/ALL/gem5.opt PYTHON=/usr/bin/python3.6
若你使用自行编译安装的Python3,可将路径替换为实际的Python3可执行文件路径。第三步(可选):调整系统Python默认优先级
若不想每次构建都指定PYTHON参数,可通过update-alternatives修改系统默认Python绑定:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2修改完成后执行
python --version确认默认版本为3.6.7,再重新执行构建命令即可。
验证方法
构建前可执行pkg-config --modversion python3检查Python3开发库版本,返回值≥3.6即可正常构建。
内容的提问来源于stack exchange,提问作者Ustinian

