Ubuntu 22.04虚拟机中用pyenv安装Python 3.7.0失败求助
Python 3.7.0 无法通过pyenv在Ubuntu 22.04虚拟机安装的解决思路
问题核心
报错本质是pyenv默认使用的pip安装脚本已不再支持Python 3.7,且虚拟机环境可能存在依赖缺失、pyenv版本老旧或缓存残留等问题,导致手动更新pip后仍无法完成安装。
解决步骤
补全系统依赖
Ubuntu 22.04安装旧版Python需要额外的编译依赖,虚拟机作为新环境可能未安装,执行以下命令补全:sudo apt update && sudo apt install build-essential libssl-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl指定兼容的pip安装脚本
强制pyenv在安装Python 3.7.0时使用对应版本的pip安装脚本,直接执行:PYTHON_GET_PIP_URL=https://bootstrap.pypa.io/pip/3.7/get-pip.py pyenv install 3.7.0若网络不稳定,可先下载脚本到本地再指定路径:
wget https://bootstrap.pypa.io/pip/3.7/get-pip.py -O ~/get-pip-3.7.py PYTHON_GET_PIP_URL=file://$HOME/get-pip-3.7.py pyenv install 3.7.0清理pyenv缓存
之前安装失败的残留缓存可能干扰后续安装,清理后重试:rm -rf ~/.pyenv/cache/python-3.7.0* pyenv install 3.7.0更新pyenv版本
若虚拟机的pyenv版本较旧,可能存在兼容性bug,更新后再尝试安装:cd ~/.pyenv && git pull pyenv install 3.7.0手动编译安装(终极方案)
若以上方法均无效,直接手动编译Python 3.7.0并纳入pyenv管理:# 下载源码 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz # 解压 tar xzf Python-3.7.0.tgz cd Python-3.7.0 # 配置编译参数,指定安装到pyenv版本目录 ./configure --prefix=$HOME/.pyenv/versions/3.7.0 --enable-optimizations # 编译安装 make -j$(nproc) && make install # 让pyenv识别新安装的版本 pyenv rehash
内容的提问来源于stack exchange,提问作者Jonalca
相关产品推荐
相关产品推荐

