Ubuntu22.04下如何让CMake默认识别Python3.10而非3.9
永久解决CMake FindPython优先识别Python3.10的方案
方法1:通过环境变量全局指定Python3.10路径
编辑你的shell配置文件(如~/.bashrc或~/.zshrc),添加以下环境变量:
export Python3_ROOT_DIR="/usr" export Python3_EXECUTABLE="/usr/bin/python3.10" export CMAKE_PREFIX_PATH="/usr/bin:/usr/lib/x86_64-linux-gnu:/usr/include/python3.10:$CMAKE_PREFIX_PATH"
执行source ~/.bashrc(对应你的配置文件)使设置立即生效。此后CMake的FindPython模块会优先读取这些变量,定位到系统默认的Python3.10。
方法2:修改CMake全局配置文件
创建或编辑用户级CMake配置文件~/.cmake/config.cmake,写入以下内容:
set(Python3_ROOT_DIR "/usr" CACHE PATH "Python 3 root directory") set(Python3_EXECUTABLE "/usr/bin/python3.10" CACHE FILEPATH "Python 3 executable") set(Python3_VERSION "3.10" CACHE STRING "Python 3 target version")
该配置会全局作用于所有CMake项目,强制FindPython优先查找Python3.10。
方法3:用update-alternatives管理Python版本优先级(推荐)
Ubuntu系统自带的update-alternatives可以安全管理多版本Python,避免手动修改软链接导致的系统问题:
- 注册Python3.10和3.9的备选项(数字为优先级,值越高越优先):
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 100 sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9 50
- 若后续需要切换版本,执行:
sudo update-alternatives --config python3
选择对应版本的序号即可。
配置完成后,CMake会跟随系统默认的python3指向,自动优先识别Python3.10。
验证配置有效性
执行以下命令检查CMake是否正确识别目标版本:
cmake --find-package -DNAME=Python3 -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST
或进入pivy编译目录执行cmake .,查看输出中的Python版本信息是否为3.10。
内容的提问来源于stack exchange,提问作者FalcoGer
相关产品推荐
相关产品推荐

