使用 pyenv 在Ubuntu 20 上安装 Python 3.10

步骤 1: 安装编译所需的依赖项

由于 pyenv 是通过编译源代码来安装 Python 的,您需要安装所有必要的编译工具和开发库。

bash 复制代码
# 更新系统并安装编译依赖
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

步骤 2: 安装 pyenv

使用官方推荐的 pyenv-installer 脚本进行安装。

bash 复制代码
# 下载并运行 pyenv 安装脚本
curl https://pyenv.run | bash

步骤 3: 配置 Shell 环境

安装完成后,您需要将 pyenv 的初始化路径添加到您的 shell 配置文件 (~/.bashrc) 中,使其在每次打开终端时自动加载。

bash 复制代码
# 1. 将 pyenv 相关的初始化命令添加到 ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init --path)"\n  eval "$(pyenv virtualenv-init -)"\nfi' >> ~/.bashrc

# 2. 重新加载配置,使 pyenv 命令立即可用
source ~/.bashrc

步骤 4: 使用 pyenv 安装 Python 3.10

现在,您可以利用 pyenv 来编译和安装 Python 3.10。建议选择最新的 3.10.x 版本(例如 3.10.10)。

bash 复制代码
# 1. 查看 pyenv 提供的 3.10 版本列表 (可选)
pyenv install --list | grep " 3.10"

# 2. 安装 Python 3.10.10 (如果需要最新版本,请替换版本号)
# 这一步是源代码编译,可能会持续 5-15 分钟,具体取决于您的虚拟机性能。
pyenv install 3.10.10

手动缓存源码

bash 复制代码
#创建缓存目录: 确保缓存目录存在。
mkdir -p ~/.pyenv/cache
cd ~/.pyenv/cache
#手动下载 Python 3.10.10 源码包
wget https://mirrors.tuna.tsinghua.edu.cn/python/3.10.10/Python-3.10.10.tar.xz
#重新执行
pyenv install 3.10.10

步骤 5: 验证和启用 Python 3.10

安装完成后,您就可以告诉 pyenv 使用这个新版本了。

bash 复制代码
# 1. 设置 Python 3.10.10 为全局默认版本(推荐在 /root 用户下使用)
pyenv global 3.10.10

# 2. 验证当前 shell 中使用的 Python 版本
python --version
相关推荐
好家伙VCC1 天前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
前端玖耀里1 天前
如何使用python的boto库和SES发送电子邮件?
python
serve the people1 天前
python环境搭建 (十二) pydantic和pydantic-settings类型验证与解析
java·网络·python
小天源1 天前
Error 1053 Error 1067 服务“启动后立即停止” Java / Python 程序无法后台运行 windows nssm注册器下载与报错处理
开发语言·windows·python·nssm·error 1053·error 1067
喵手1 天前
Python爬虫实战:HTTP缓存系统深度实战 — ETag、Last-Modified与requests-cache完全指南(附SQLite持久化存储)!
爬虫·python·爬虫实战·http缓存·etag·零基础python爬虫教学·requests-cache
喵手1 天前
Python爬虫实战:容器化与定时调度实战 - Docker + Cron + 日志轮转 + 失败重试完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·容器化·零基础python爬虫教学·csv导出·定时调度
2601_949146531 天前
Python语音通知接口接入教程:开发者快速集成AI语音API的脚本实现
人工智能·python·语音识别
寻梦csdn1 天前
pycharm+miniconda兼容问题
ide·python·pycharm·conda
zhengfei6111 天前
面向攻击性安全专业人员的一体化浏览器扩展程序[特殊字符]
前端·chrome·safari
Java面试题总结1 天前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf