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

ubuntu服务器部署vue springboot前后端分离项目

上传构建好的vue前端文件 vscode构建vue项目,会生成dist目录 npm run build在服务器root目录新建/projects/www目录,把dist目录下的所有文件,上传到此目录中 上传ssl证书 上传ssl证书到/projects目录中 配置nginx 编辑 /etc/nginx/site…

微服务边界守卫:Eureka中服务隔离策略的实现

微服务边界守卫:Eureka中服务隔离策略的实现 在微服务架构中,服务隔离是一项关键策略,用于确保服务之间的故障不会相互影响,同时提供更加安全和稳定的运行环境。Eureka作为Netflix开源的服务发现框架,提供了一些机制来…

Java 网络协议面试题答案整理,最新面试题

TCP和UDP的主要区别是什么? TCP(传输控制协议)和UDP(用户数据报协议)的主要区别在于TCP是面向连接的协议,而UDP是无连接的协议。这导致了它们在数据传输方式、可靠性、速度和使用场景方面的不同。 1、连接方式: TCP是面向连接的协议,数据传输前需要三次握手建立连接。U…

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

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

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

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

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

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

Stable Diffusion AI绘画全攻略:从理论到实战,解锁创意图画的魔法之门

在科技的飞速发展中,Stable Diffusion AI绘画技术为艺术创作带来了前所未有的革命性变化。这项技术由CompVis、Stability AI和LAION联合研发,通过深度学习模型,将文字描述转化为生动的艺术作品,极大地拓宽了创意与想象的边界。本文…

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

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

TCP、UDP、TCP与UDP的区别及联系

目录 TCP和UDP区别1.连接2.交互个数3.可靠性4.传输方式5.适用场景 怎么实现一个可靠的UDP传输TCP详解UDP详解 TCP和UDP区别 1.连接 TCP 面向连接的,传输数据前先要建立连接。 UDP 是不需要连接,即刻传输数据。 2.交互个数 TCP 是一对一通信。 UDP 支…

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

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

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

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

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

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

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

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

数据分析——numpy教程

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

前端数据加密,后端java解密

在前端对数据进行加密后,通常会使用一些加密算法和技术,如AES(Advanced Encryption Standard)进行数据加密。然后,将加密后的数据发送到后端。后端接收到加密数据后,使用Java语言进行解密。 以下是一个简单…

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 按位序插入(不带…

spring事务 @Transactional

文章目录 1. 简介1.1 什么是事务1.2 什么是Spring事务管理1.3 Transactional注解的作用 2. Transactional注解的使用2.1 如何在Spring中使用Transactional2.2 Transactional的属性配置 3. Transactional的工作原理3.1 Spring如何管理事务3.2 Transactional的底层实现 4. Transa…

数学建模·灰色关联度

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