Python 3.6.8虚拟环境中pip出现Segmentation Fault问题求助
Python 3.6.8虚拟环境中pip触发Segmentation Fault(核心转储)问题
环境配置
- Python版本:3.6.8(通过
pyenv安装) - Pyenv版本:2.4.3
- 操作系统:VMware虚拟机上的Ubuntu 24.04.1 LTS
错误信息
$ pip --version Segmentation fault (core dumped) $ pip install <package> Segmentation fault (core dumped)
已尝试的解决步骤
- 为
pymalloc添加16字节对齐补丁后重新编译Python 3.6.8 - 升级pip,但问题依旧
- 多次创建全新虚拟环境
pip及pip3.6文件内容
pip文件
#!/home/huse/PycharmProjects/pythonVoca/pythonVoca/venv/bin/python # -*- coding: utf-8 -*- import re import sys from pip._internal.cli.main import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit(main())
pip3.6文件
#!/home/huse/PycharmProjects/pythonVoca/pythonVoca/venv/bin/python # -*- coding: utf-8 -*- import re import sys from pip._internal.cli.main import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit(main())
可能的解决方法
- 适配新版glibc编译Python
Ubuntu 24.04的glibc版本较新,与Python 3.6.8存在兼容性差异,编译时添加参数强制使用旧ABI:
CFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" pyenv install 3.6.8
编译完成后重新创建虚拟环境测试pip命令。
- 安装Python 3.6兼容的旧版pip
新版pip不再支持Python 3.6,直接通过Python内置模块安装适配版本:
python -m ensurepip --default-pip python -m pip install pip==20.3.4
20.3.4是官方支持Python 3.6的最后一个pip版本。
- 禁用pymalloc重新编译Python
pymalloc的内存对齐问题可能未完全修复,尝试禁用后编译:
PYTHON_CONFIGURE_OPTS="--without-pymalloc" pyenv install 3.6.8
重新编译后创建虚拟环境验证。
- 补全系统编译依赖
确保Ubuntu系统安装了Python编译所需的全部依赖包:
sudo apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
安装完成后重新编译Python 3.6.8。
内容的提问来源于stack exchange,提问作者Sileton Huse Empty_08
相关产品推荐
相关产品推荐

