You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 21.10源码安装Python3.5执行ensurepip触发段错误如何排查解决

可能成因
  • 系统依赖库版本不兼容:Ubuntu 21.10的glibc、openssl、libffi等核心系统库版本远高于Python 3.5适配的版本范围,Python 3.5早已停止维护,没有适配新系统库的补丁,编译时可能产生隐性兼容问题,运行到ensurepip相关逻辑时触发内存访问错误。
  • ensurepip模块自身兼容问题:Python 3.5捆绑的ensurepip内置的pip版本过老,无法适配新系统的运行环境,执行pip初始化逻辑时触发段错误。
  • 编译缓存或参数异常:之前的编译残留缓存文件、错误的编译优化参数、缺失必要的依赖头文件,都会导致编译生成的Python二进制存在缺陷,运行时触发段错误。
  • 架构或链接异常:编译过程中存在32位/64位架构不匹配、动态库链接错误的问题,导致二进制运行时访问非法内存。
调试排查方法
  • 跳过ensurepip模块验证基础二进制可用性:重新执行configure时添加--without-ensurepip参数,完整命令参考./configure --without-ensurepip [你的原有编译参数],之后重新执行make和make install,验证安装完成的Python 3.5是否能正常启动运行。如果可以正常运行,说明故障点确实在ensurepip模块,后续手动安装适配的旧版pip即可。
  • 开启调试模式抓取崩溃栈:编译时添加debug参数,执行./configure --with-pydebug [其他参数],保留编译符号信息,之后在触发错误的编译目录执行gdb --args ./python -E -m ensurepip,输入run触发段错误后,执行bt命令打印调用栈,定位具体崩溃的函数和模块。
  • 清理残留缓存重编译:执行make clean && make distclean清理所有编译生成的中间文件和缓存,从头走configure、make、make install流程,排除旧缓存导致的异常。
  • 验证基础二进制功能:在执行make install之前,先在编译目录直接运行./python -c "print('test')",如果直接运行就触发段错误,说明是Python核心二进制编译异常,优先排查编译参数和依赖库兼容性。
  • 适配依赖库版本:如果必须安装Python 3.5,可以手动安装对应旧版本的依赖库,编译时通过--prefix、LDFLAGS、CPPFLAGS等参数指定链接到旧版依赖库的路径,避免调用系统过新的不兼容库。

内容的提问来源于stack exchange,提问作者guettli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:24:04