Pyenv的安装和使用

  Pyenv是一个简单的Python版本管理工具。通过Pyenv可以安装多个版本的Python,并且可以在多个版本之间轻松切换。所用操作系统:Ubuntu 22.04。


1. 安装Pyenv

1.1 说明

a) Pyenv支持UNIX/LINUX/MacOS系统,并未支持Windows操作系统,Pyenv官网。
b) 如果是Windows系统,可以使用非官方版 Pyenv-win。

1.2 安装Pyenv

a) 执行如下安装命令:
三个命令是一样的,只是前两个是官网Github源,后一个是镜像Gitee源。

# Github源
$ curl https://pyenv.run | bash
# 上面的调用等效于
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash# 推荐:替换国内镜像源
$ curl -L https://gitee.com/xinghuipeng/pyenv-installer/raw/master/bin/pyenv-installer | bash

b) 配置环境变量,将安装路径写入~/.bashrc文件:

# 将以下三条语句写入 ~/.bashrc文件结尾
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

c) 使配置生效

$ source ~/.bashrc

d) 查看Pyenv版本并验证安装情况

$ pyenv --version

1.3 升级Pyenv

$ pyenv update

1.4 卸载Pyenv

$ rm -rf ~/.pyenv

2. Pyenv简单使用

2.1 查看所有可用的Python版本

$ pyenv install -l
# 或者
$ pyenv install -list

2.2 列出本地可用的Python版本

$ pyenv versions

2.3 在 Pyenv中安装Python

a) 安装Python的依赖包

# 以下依赖不一定是最全的,根据实际情况再安装缺失的吧
$ sudo apt update
$ sudo apt install libbz2-dev libncurses5-dev libncursesw5-dev libreadline-dev libffi-dev libsqlite3-dev liblzma-dev

b) 安装Pyenv

#方式一:因为pyenv会自动到github上下载,速度超慢,因此推荐第二种方式
$ pyenv install 3.12.2 -v  #-v 以日志模式显示安装过程#方式二:使用curl或者wget下载到~/.pyenv/cache下,然后再用pyenv安装。软件源可以用自己熟悉的镜像源
$ 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

c) 检查安装情况,安装成功后,本地会多出一个可用版本。如未增加,可能是安装失败了,大概率是缺失依赖包,根据错误日志,安装所需依赖,重新执行安装命令即可。

$ pyenv versions

2.4 指定/切换Python版本

以下三个命令的生效范围不同,根据自己需要执行其一即可:

# 当前shell
$ pyenv shell 3.12.2
# 当前目录
$ pyenv local 3.12.2
# 全局
$ pyenv global 3.12.2# 查看当前Python版本
$ python --version

2.5 删除指定Python版本

$ pyenv uninstall 3.12.2

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

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

相关文章

【开发篇】十二、GCeasy报告分析

文章目录 1、图一:正常情况2、图二:缓存对象过多3、图三:内存泄漏4、图四:频繁持续Full GC5、图五:元空间不足导致的Full GC 1、图一:正常情况 正常的堆内存如图: 锯齿状对象创建后内存占用上…

【PostgreSQL】- 1.2 PostgreSQL 配置单独的数据库存储

在 Debian 或其它 Linux 系统上,为数据库创建一个单独的挂载点(如 /opt/pgdata)并将一块大容量硬盘挂载到这个目录有几个优点:数据隔离、性能优化、备份和恢复、安全性。 因此接上篇 “【PostgreSQL】- 1.1 在 Debian 12 上安装 P…

基础算法-去重字符串,辗转相除法,非递归前序遍历二叉树题型分析

目录 不同子串 辗转相除法-求最大公约数 二叉树非递归前序遍历 不同子串 从a开始,截取 a aa aaa aaab 从第二个下标开始a aa aab 从第三个 a ab 从第四个 b 使用set的唯一性,然后暴力遍历来去去重,从第一个下标开始截取aaab a aa aaa aaab…

【JS】数组详解

前言 数组是js中最常用到的数据集合,它是引用数据类型的一种(其他二者为Object和Function),但其本质是Object。 一、数组的组成 数组由三部分组成,分别是索引、元素和length。 索引:用于标识元素&#xf…

ES学习日记(三)-------第三方插件选择

前言 在学习和使用Elasticsearch的过程中,必不可少需要通过一些工具查看es的运行状态以及数据。如果都是通过rest请求,未免太过麻烦,而且也不够人性化。 目前我了解的比较主流的插件就三个,head,cerebor和elasticHD 1.head 老牌插件,功能…

原生js实现循环滚动效果

原生js实现如下图循环滚动效果 核心代码 <div class"scroll"><div class"blist" id"scrollContainer"><div class"bitem"></div>......<div class"bitem"></div></div> </di…

Long long类型比较大小

long 与 Long long类型和Long类型是不一样&#xff0c;long类型属于基本的数据类型&#xff0c;而Long是long类型的包装类。 结论 long是基本数据类型&#xff0c;判断是否相等时使用 &#xff0c;即可判断值是否相等。&#xff08;基本数据类型没有equals()方法&#xff0…

局域网找不到共享电脑怎么办?

局域网找不到共享电脑是一种常见的问题&#xff0c;给我们的共享与合作带来一定的困扰。天联组网技术可以解决这个问题。本文将介绍天联组网的原理和优势&#xff0c;并探讨其在解决局域网找不到共享电脑问题中的应用。 天联组网的原理和优势 天联组网是一种基于加速服务器的远…

基于Pytorch的验证码识别模型应用

前言 在做OCR文字识别的时候&#xff0c;或多或少会接触一些验证码图片&#xff0c;这里收集了一些验证码图片&#xff0c;可以对验证码进行识别&#xff0c;可以识别4到6位&#xff0c;纯数字型、数字字母型和纯字母型的一些验证码&#xff0c;准确率还是相当高&#xff0c;需…

第14章动态规划

动态规划 确定递推状态&#xff1a; f(n)解释 确定递推公式 程序实现 优化&#xff1a; 去除冗余状态 状态重定义 优化转移过程 斜率优化 优化-递归记忆化 if arr[n] return arr[n]递归记忆化(正向求解-递归) 或 改变求解顺序&#xff08;逆向递归求解-循环&#xff09; &…

STM32 PWM通过RC低通滤波转双极性SPWM测试

STM32 PWM通过RC低通滤波转双极性SPWM测试 &#x1f4cd;参考内容《利用是stm32cubemx实现双极性spwm调制 基于stm32f407vet6》&#x1f4fa;相关视频链接&#xff1a;https://www.bilibili.com/video/BV16S4y147hB/?spm_id_from333.788 双极性SPWM调制讲解以及基于stm32的代码…

基于 RisingWave 和 ScyllaDB 构建事件驱动应用

概览 在构建事件驱动应用时&#xff0c;人们面临着两大挑战&#xff1a;1&#xff09;低延迟处理大量数据&#xff1b;2&#xff09;实现流数据的实时摄取和转换。 结合 RisingWave 的流处理功能和 ScyllaDB 的高性能 NoSQL 数据库&#xff0c;可为构建事件驱动应用和数据管道…

cts 运行时 有时候 aapt2 的问题

05-04 16:30:18 E/AaptParser: aapt2 dump badging stderr: W/ziparchive(1050736): Unable to open ‘badging’: No such file or directory badging: error: No such file or directory. 05-04 16:30:18 E/AaptParser: Failed to run aapt2 on /xxx/android-gts/tools/./…/…

阿里云发送短信配置

依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.2.1</version> </dependency> <dependency><groupId>org.apache.httpcomponents</groupId&g…

毛细管制冷系统的设计要点

1在制冷系统的高压侧&#xff0c;不要设置储液器&#xff0c;在保证冷凝器能够容纳全部制冷剂的前提下&#xff0c;尽量减少其有效容积。 因为在采用毛细管作为节流元件的制冷系统中&#xff0c;若设置储液器或冷凝器容积过大&#xff0c;则当压缩机停机后&#xff0c;制冷剂液…

使用html实现图片相册展示设计

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>图片&#xff08;相册&#xff09;展示设计</title><link rel"stylesheet" href"./style.css"> </head> <b…

YOLOv8改进 | 检测头篇 | 2024最新HyCTAS模型提出SAttention(自研轻量化检测头 -> 适用分割、Pose、目标检测)

一、本文介绍 本文给大家带来的改进机制是由全新SOTA分割模型(Real-Time Image Segmentation via Hybrid Convolutional-TransformerArchitecture Search)HyCTAS提出的一种SelfAttention注意力机制,论文中叫该机制应用于检测头当中(论文中的分割效果展现目前是最好的)。我…

JavaScript 字符串 API

JavaScript 字符串 API 指南 JavaScript 中的字符串&#xff08;String&#xff09;是一种基本数据类型&#xff0c;表示文本数据。通过字符串 API&#xff0c;我们可以对字符串进行各种操作和处理&#xff0c;如创建、访问、修改、查找等。本指南将介绍 JavaScript 中常用的字…

【Ubuntu】Ubuntu LTS 稳定版更新策略

1、确保下载环境 sudo apt update && sudo apt upgrade -y sudo apt autoremove 2、安装更新管理器 sudo apt install update-manager-core -y 3、设置只更新稳定版 sudo vim /etc/update-manager/release-upgrades 4、开始更新&#xff0c;耐心等待 sudo do-re…

Spring面试题系列-2

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而&#xff0c;Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言&#xff0c;绝大部分Java应用都可以从Spring中受益。 ApplicationC…