【Ubuntu】安装使用pyenv - Python版本管理

当我们在Ubuntu上使用Python进行开发的时候,可能会遇到版本不兼容的问题,当然你可以选择使用apt的方式安装不同版本的python环境

但是存在一定的问题:安装不同版本的Python通常不会改变默认的python3命令指向的版本,而且就算你进行了修改,内部的很多配置还是会使用原来的版本无法做到一次替换整体替换(而且很多报错,不推荐!!!)

那么接下来介绍pyenv啦

pyenv

1. 安装依赖项

首先,你需要安装pyenv的一些依赖项,包括git(如果你打算从Git仓库克隆pyenv),curl(虽然在这个特定情况下不是必需的,但它是Ubuntu上常用的工具),make,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。

打开终端,然后运行以下命令来安装这些依赖项:

bash 复制代码
sudo apt-get update  
sudo apt-get install -y git make 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

2. 安装pyenv

有几种方法可以安装pyenv,但最常见的是通过Git克隆其GitHub仓库到你的用户主目录下的一个.pyenv目录中。

首先,确定你的主目录(通常是/home/你的用户名),然后克隆pyenv仓库:

bash 复制代码
cd ~  
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

如果出现连接超时的报错,先试试能不能ping通GitHub(毕竟是国外的网站) ping www.github.com

3. 配置环境变量

接下来,你需要配置你的shell以包含pyenv。这通常涉及到在你的shell配置文件中(如.bashrc,.bash_profile,.zshrc等)添加几行。

对于Bash用户,打开你的~/.bashrc文件并添加以下行:

bash 复制代码
export PYENV_ROOT="$HOME/.pyenv"  
export PATH="$PYENV_ROOT/bin:$PATH"  
  
# 如果你的shell是bash,请启用下面的命令  
if [ -d "$PYENV_ROOT/shims" ]; then  
  export PATH="$PYENV_ROOT/shims:$PATH"  
fi  
# 初始化pyenv(对于bash shell)  
eval "$(pyenv init --path)"  
eval "$(pyenv init -)"

对于Zsh用户,打开你的~/.zshrc文件并添加类似的行。

4. 应用更改

为了使更改生效,你需要重新加载你的shell配置文件或重新打开你的终端。

对于Bash用户,你可以通过运行source ~/.bashrc来重新加载配置文件。

5. 验证安装

最后,验证pyenv是否已正确安装。在你的终端中运行以下命令:

bash 复制代码
pyenv --version

如果一切设置正确,你将看到pyenv的版本号。

bash 复制代码
# 类似于这样
hx@LAPTOP-H2EI4I6A:~/test/backend$ pyenv --version
pyenv 2.4.7

6. 使用pyenv

现在,你可以开始使用pyenv来安装和管理不同版本的Python了。

6.1 安装

例如,要安装Python 3.8.5,你可以运行:

bash 复制代码
pyenv install 3.8.5
bash 复制代码
hx@LAPTOP-H2EI4I6A:~/test/backend$ pyenv install 3.8.5
Downloading Python-3.8.5.tar.xz...
-> https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz

假如说你一直卡在这种情况(那么就是网络问题啦,因为pyenv会自动到github上下载,速度超慢,这边给大家推荐通过镜像网站下载)

bash 复制代码
cd ~/.pyenv
sudo mkdir cache
sudo wget -c https://mirrors.huaweicloud.com/python/3.12.2/Python-3.12.2.tar.xz -P  ~/.pyenv/cache/
pyenv install 3.12.2 -v

首先先打开这个网址找到自己想下的版本https://mirrors.huaweicloud.com/python进行版本号替换

6.2 列出所有版本

要列出所有已安装的Python版本,你可以运行:

bash 复制代码
pyenv versions

要列出pyenv所有能下载的版本,可以运行:

bash 复制代码
pyenv install --list

6.3 设置版本

要设置全局Python版本,你可以运行:

bash 复制代码
pyenv global 3.8.5

要在特定目录下设置Python版本,你可以在该目录下运行:(记得切换目录)

bash 复制代码
pyenv local 3.8.5

这样,你就成功地在Ubuntu上安装了pyenv并可以开始使用它来管理Python版本了。

6.4 查看当前Python版本

bash 复制代码
python3 --version

6.5 删除指定Python版本

bash 复制代码
pyenv uninstall 3.12.2

7. 删除pyenv

bash 复制代码
rm -rf ~/.pyenv
相关推荐
学测绘的小杨10 小时前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
Web3探索者12 小时前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo14 小时前
Linux系统中网线与USB网络共享冲突
linux
zzzzzz31017 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐17 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱1 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot1 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱2 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
Sokach10152 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux