【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。

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

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仓库:

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文件并添加以下行:

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是否已正确安装。在你的终端中运行以下命令:

pyenv --version

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

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

6. 使用pyenv

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

6.1 安装

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

pyenv install 3.8.5
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上下载,速度超慢,这边给大家推荐通过镜像网站下载)

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版本,你可以运行:

pyenv versions

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

pyenv install --list

在这里插入图片描述

6.3 设置版本

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

pyenv global 3.8.5

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

pyenv local 3.8.5

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

6.4 查看当前Python版本

python3 --version

6.5 删除指定Python版本

pyenv uninstall 3.12.2

7. 删除pyenv

rm -rf ~/.pyenv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式对象存储minio

本教程minio 版本:RELEASE.2021-07-*及以上 1. 分布式文件系统应用场景 互联网海量非结构化数据的存储需求 电商网站:海量商品图片视频网站:海量视频文件网盘 : 海量文件社交网站:海量图片 1.1 Minio介绍 MinIO 是一个基于Ap…

区块链与云计算的融合:新时代数据安全的挑战与机遇

随着信息技术的迅猛发展,云计算和区块链技术作为两大前沿技术在各自领域内展示出了巨大的潜力。而它们的结合,即区块链与云计算的融合,正在成为数据安全领域的新趋势。本文将探讨这一融合对数据安全带来的挑战和机遇,以及其在企业…

平替ChatGPT的多模态智能体来了

在人工智能领域,多模态技术的融合与应用已成为推动技术革新的关键。今天,我们用智匠AI实现了完全由国产模型驱动的多模态智能体——智酱v0.1.0,它不仅能够媲美ChatGPT的多模态能力,更在联网搜索、图片识别、画图及图表生成等方面展…

redis原理之底层数据结构(二)-压缩列表

1.绪论 压缩列表是redis最底层的结构之一,比如redis中的hash,list在某些场景下使用的都是压缩列表。接下来就让我们看看压缩列表结构究竟是怎样的。 2.ziplist 2.1 ziplist的组成 在低版本中压缩列表是由ziplist实现的,我们来看看他的结构…

大数据面试SQL题-笔记01【运算符、条件查询、语法顺序、表连接】

大数据面试SQL题复习思路一网打尽!(文档见评论区)_哔哩哔哩_bilibiliHive SQL 大厂必考常用窗口函数及相关面试题 大数据面试SQL题-笔记01【运算符、条件查询、语法顺序、表连接】大数据面试SQL题-笔记02【...】 目录 01、力扣网-sql题 1、高频SQL50题&#xff08…

数据结构——hash(hashmap源码探究)

hash是什么? hash也称为散列,就是把任意长度的输入,通过散列算法,变成固定长度的输出,这个输出值就是散列值。 举例来说明一下什么是hash: 假设我们要把1~12存入到一个大小是5的hash表中,我们…

矿产资源潜力预测不确定性评价

研究目的: 不确定性评估: 到底什么叫不确定性,简单来说就是某区域内的矿产资源量,并不确定到底有多少,你需要给出一个评估或者分布。 研究方法: 1.以模糊集来表示某些量: 关于什么是模糊集&am…

信通院全景图发布 比瓴科技领跑软件供应链安全,多领域覆盖数字安全服务

近日,中国信息通信研究院在2024全球数字经济大会—数字安全生态建设专题论坛正式发布首期《数字安全护航技术能力全景图》(以下简称全景图)。 比瓴科技入选软件供应链安全赛道“开发流程安全管控、交互式安全测试、静态安全测试、软件成分分…

智慧水利:迈向水资源管理的新时代,结合物联网、云计算等先进技术,阐述智慧水利解决方案在提升水灾害防控能力、优化水资源配置中的关键作用

本文关键词:智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

数据分析——numpy教程

1.NumPy: 是Python的一个开源的数值计算库。可以用来存储和处理大型矩阵,比python自身的嵌套列表结构要高效,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,包括数学、逻辑、形状操作、排序、…

MKS电源管理软件OPTIMA RPDG DCG系列RF Elit600系列

MKS电源管理软件OPTIMA RPDG DCG系列RF Elit600系列

数据结构——考研笔记(三)线性表之单链表

文章目录 2.3 单链表2.3.1 知识总览2.3.2 什么是单链表2.3.3 不带头结点的单链表2.3.4 带头结点的单链表2.3.5 不带头结点 VS 带头结点2.3.6 知识回顾与重要考点2.3.7 单链表的插入和删除2.3.7.1 按位序插入(带头结点)2.3.7.2 按位序插入(不带…

数学建模·灰色关联度

灰色关联分析 基本原理 灰色关联分析可以确定一个系统中哪些因素是主要因素,哪些是次要因素; 灰色关联分析也可以用于综合评价,但是由于数据预处理的方式不同,导致结果 有较大出入 ,故一般不采用 具体步骤 数据预处理…

wps批量删除空白单元格

目录 原始数据1.按ctrlg键2.选择“空值”,点击“定位”3. 右击,删除单元格修改后的数据 原始数据 1.按ctrlg键 2.选择“空值”,点击“定位” 如图所示,空值已被选中 3. 右击,删除单元格 修改后的数据

微软Office PLUS办公插件下载安装指南

微软OfficePLUS插件下载安装指南 简介: OfficePLUS微软官方出品的Office插件 ,OfficePLUS拥有30万高质量模板素材,能帮助Word、Excel、Powerpoint、PDF等多种办公软件提升效率,具有智能化、模板质量高、运行快、稳定性强等优点。…

昇思25天学习打卡营第11天|RNN实现情感分类

概述 情感分类是自然语言处理中的经典任务,是典型的分类问题。本节使用MindSpore实现一个基于RNN网络的情感分类模型,实现如下的效果: 输入: This film is terrible 正确标签: Negative 预测标签: Negative输入: This film is great 正确标…

Mongodb复合索引

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第90篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

【计算机毕业设计】002基于weixin小程序家庭记账本

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【实战:python-Django发送邮件-短信-钉钉通知】

一 Python发送邮件 1.1 使用SMTP模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Headermsg_from 306334678qq.com # 发送方邮箱 passwd luzdikipwhjjbibf # 填入发送方邮箱的授权码(填入自己的授权码,相当于邮箱…

鸿蒙语言基础类库:【@ohos.uitest (UiTest)】 测试

UiTest UiTest提供模拟UI操作的能力,供开发者在测试场景使用,主要支持如点击、双击、长按、滑动等UI操作能力。 该模块提供以下功能: [By]:提供控件特征描述能力,用于控件筛选匹配查找。[UiComponent]:代…