MacOS Ventura 13.2.1下Pyenv安装Python 3.6.9失败求助
在MacOS Ventura 13.2.1上用pyenv安装Python 3.6.9失败的解决建议
问题分析
Python 3.6.9发布于2019年,不支持MacOS Ventura(13.x)的系统环境,其配置脚本无法识别Ventura对应的darwin22平台标识,导致出现configure: error: internal configure error for the platform triplet的构建失败。
解决方案
1. 更新python-build工具
你当前使用的python-build版本为20180424,过于老旧,无法适配新MacOS版本。先更新pyenv及python-build:
pyenv update
2. 指定兼容的部署目标与OpenSSL路径
运行安装命令时,设置旧版本的MacOS部署目标,并指定Homebrew安装的openssl@1.1路径(Python 3.6不兼容OpenSSL 3.x):
MACOSX_DEPLOYMENT_TARGET=10.15 PYTHON_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl@1.1)" pyenv install 3.6.9
3. 手动修改Python源码配置脚本(如果以上方法失效)
如果前两步仍失败,手动修改Python 3.6.9的配置脚本以支持Ventura:
- 先下载源码但保留临时文件:
pyenv install --keep 3.6.9 - 进入报错信息中给出的源码工作目录(例如
/var/folders/01/bx2q2rbn099ch5d1gr1zm5fc0000gn/T/python-build.20230216230654.91605/Python-3.6.9) - 编辑
configure文件,搜索包含darwin版本判断的代码块(类似case "${ac_sys_system}-${ac_sys_release}" in),添加对darwin22的支持:
可参考已有的darwin22*) ac_cv_func_pthread_attr_setstacksize=no ac_cv_func_pthread_attr_getstacksize=no ;;darwin21*)或darwin20*)分支的配置内容 - 回到终端,重新运行安装命令,或在源码目录执行手动编译:
./configure --prefix=$(pyenv root)/versions/3.6.9 --with-openssl=$(brew --prefix openssl@1.1) make && make install
4. 临时替代方案(若项目允许)
如果以上方法均无法成功,可尝试使用你已安装的Python 3.6.8,多数情况下3.6.x版本间的兼容性较强,可能可以适配项目需求。
内容的提问来源于stack exchange,提问作者kaikao64
相关产品推荐
相关产品推荐

