Python版本管理工具-pyenv

news2024/12/23 12:09:44

Pyenv是一个Python版本管理工具。
Pyenv允许用户在同一台机器上安装多个版本的Python,并能够轻松切换使用这些版本。

一、安装

Mac下直接使用Homebrew安装

# 更新 Homebrew 的软件列表
brew update
# 安装pyenv
brew install pyenv

# 验证是否安装成功
pyenv -v


# 检测你所使用的shell环境,并提示如何配置shell环境
pyenv init 

我这里使用的Shell是zsh,故将相关配置添加到用户目录下的.zshrc文件即可

# Zsh Shell配置
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

二、常用命令

# 查看可安装的Python版本
pyenv install --list
pyenv install -l

# 安装指定版本Python
pyenv install <version>
pyenv install 3.10.5 # 安装3.10.5版本的Python

# 查看已安装的Python版本
pyenv versions
# 显示当前活动的Python版本
pyenv version

# 卸载指定版本Python
pyenv uninstall <version>
pyenv uninstall 3.10.5 # 卸载3.10.5版本的Python

三、切换Python版本

1、设置全局的Python版本

# 设置 全局的Python版本
pyenv global <version>
# 查看 全局的Python版本设置
pyenv global

2、设置当前目录下的Python版本

进入该目录后,会自动切换到此前设置的Python版本。具体地,其会在该目录下生成一个.python-version文件,用于记录设置的Python版本信息。显然,该设置的优先级高于全局的Python版本

# 设置 当前目录下的Python版本
pyenv local <version>
# 查看 当前目录下的Python版本设置
pyenv local
# 取消 当前目录下的Python版本设置
pyenv local --unset

3、设置当前Shell会话的Python版本

该设置的优先级高于 基于目录设置的Python版本 和 全局的Python版本

# 设置 当前Shell会话的Python版本
pyenv shell <version>
# 查看 当前Shell会话的Python版本设置
pyenv shell
# 取消 当前Shell会话的Python版本设置
pyenv shell --unset

总结下,三种不同Python版本设置的优先级依次递减:shell > local > global

四、镜像加速

pyenv安装python是从python官网下载的,速度非常慢。虽然不能直接更改pyenv下载的镜像源。但我们可以将从其他地方下载的安装包放置在 ~/.pyenv/cache/ 目录下,这样pyenv就会利用本地文件进行安装。这里我们利用Shell定义一个pyinstall函数,脚本文件pyenvFunc.sh内容如下

#!/usr/local/bin/zsh

# 从国内镜像源下载Python压缩包,并使用pyenv进行安装
function pyinstall() {
    py_version=$1
    echo "准备安装 Python ${py_version}"
    
    # 确保cache目录存在
    pyenv_cache_dir=~/.pyenv/cache/
    mkdir -p ${pyenv_cache_dir}

    # Python压缩包的文件名
    pyenv_cache_file=Python-${py_version}.tar.xz
    # Python压缩包的完整存放路径
    pyenv_cache_file_path=${pyenv_cache_dir}${pyenv_cache_file}
    # 从指定地址下载Python压缩包
    curl -L https://npm.taobao.org/mirrors/python/${py_version}/Python-${py_version}.tar.xz -o ${pyenv_cache_file_path}
    # 安装Python
    pyenv install ${py_version}

    echo "Python ${py_version} 安装成功啦~~~"

    # 删除Python压缩包
    cd ${pyenv_cache_dir}
    rm ${pyenv_cache_file}
}

由于我用的Shell是zsh,故在用户目录下的.zshrc文件中引用pyenvFunc.sh脚本即可

# 引用pyinstall函数:从国内镜像源下载Python压缩包,并使用pyenv进行安装
source ~/CustomShellScript/pyenvFunc.sh

至此就可以使用pyinstall命令来安装不同版本的python了
在这里插入图片描述

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

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

相关文章

【水文】LLM 成文测试|Agent AI智能体的未来:技术进步与创新

参与活动&#xff1a;#Agent AI智能体的未来# Agent AI智能体的未来征文活动介绍 随着Agent AI智能体的智能化水平不断提高&#xff0c;它们在未来社会中的角色、发展路径以及可能带来的挑战也引起了广泛关注。快来分享一下你的看法吧~ 活动时间 4月29日-5月13日 内容要求 1、文…

《深入解析Windows操作系统》第5章节学习笔记

1、每个Windows进程都是由一个执行体进程EPROCESS结构来表示的&#xff0c;EPROCESS和相关数据结构位于系统空间&#xff0c;但是进程环境控制块PEB是个例外&#xff0c;它位于进程空间地址中&#xff08;因为它包含了一些需要由用户模式代码来修改的信息&#xff09;。对于每一…

jvm面试题30问

什么是JVM的跨平台&#xff1f; 什么是JVM的语言无关性&#xff1f; 什么是JVM的解释执行 什么是JIT? JIT&#xff1a;在Java编程语言和环境中&#xff0c;即时编译器&#xff08;JIT compiler&#xff0c;just-in-time compiler&#xff09;是一个把Java的字节码&#xff08;…

基于springboot实现英语知识应用网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现英语知识应用网站系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了英语知识应用网站的开发全过程。通过分析英语知识应用网站管理的不足&#xff0c;创建了一个计算机管理英语知识应…

Mysql中索引的概念

索引相关概念 基础概念&#xff1a; 在MySQL中&#xff0c;索引是一种数据结构&#xff0c;用于加快数据库查询的速度和性能。索引可以帮助MySQL快速定位和访问表中的特定数据&#xff0c;就像书籍的索引一样&#xff0c;通过存储指向数据行的指针&#xff0c;可以快速…

cmake的使用方法: 编译生成库文件

一. 简介 前面文章学习了针对单个 .c文件&#xff0c;cmake 工具是如何编译的&#xff1f; 针对包含多个 .c文件&#xff0c;cmake工具又是如何编译的&#xff1f;文章如下&#xff1a; cmake的使用方法: 单个源文件的编译-CSDN博客 cmake的使用方法: 多个源文件的编译-CS…

Allegro如何删除死铜

Allegro如何删除死铜 敷铜说明 敷铜后铜皮会避让与自己不同的信号,避让后有的铜皮就会变成很小一块,这个最小形状的设置如下, 首先点击: 然后选中对应的铜皮: 在鼠标右键,选择“Parameters…” 改变上图红色框中的数值就能设置最小死铜的大小。 删除死铜的方法 1、首…

设计模式之装饰者模式DecoratorPattern(四)

一、概述 装饰者模式&#xff08;Decorator Pattern&#xff09;是一种用于动态地给一个对象添加一些额外的职责的设计模式。就增加功能来说&#xff0c;装饰者模式相比生成子类更为灵活。装饰者模式是一种对象结构型模式。 装饰者模式可以在不改变一个对象本身功能的基础上增…

前端开发报错:Extension context invalidated

这个错误一般是由浏览器的插件导致的 直接卸载 就没有问题了 注意检查 可能不是你自己的代码问题哦&#xff5e;

【如何使用SSH密钥验证提升服务器安全性及操作效率】(优雅的连接到自己的linux服务器)

文章目录 一、理论基础&#xff08;不喜欢这部分的可直接看具体操作&#xff09;1.为什么要看本文&#xff08;为了zhuangbility&#xff09;2.为什么要用密钥验证&#xff08;更安全不易被攻破&#xff09;3.密码验证与密钥验证的区别 二、具体操作1.生成密钥对1.1抉择&#x…

DataTrove:一款针对大规模文本数据的处理、过滤和消除重复数据工具

关于DataTrove DataTrove是一款针对大规模文本数据的处理、过滤和消除重复数据工具&#xff0c;该工具可以通过提供一组平台无关的可定制管道处理块&#xff0c;帮助广大研究人员从各种复杂脚本中解放出来&#xff0c;同时还允许我们轻松添加自定义功能。 DataTrove所实现的数…

再生龙clonezilla使用方法

目录 本文相关内容的介绍服务器窗口重定向引导进入再生龙系统检查本机操作系统的引导模式 再生龙基础功能选择选择 device-image选择ssh_server 网络配置ssh_server 配置ssh_server 镜像存储路径 再生龙抓取操作系统抓取镜像的命名 再生龙恢复操作系统拉取镜像的选择 本文相关内…

OpenCV4.9的点多边形测试(65)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV的图像矩(64) 下一篇&#xff1a;OpenCV4.9的基于距离变换和分水岭算法的图像分割(66) Point Polygon Test&#xff08;点多边形测试&#xff09;是 OpenCV 库中的一个功能&#xff0c;用于判…

Windows安装mysql8.0.20

目录 1.下载安装包mysql8.0.20 2.配置MySQL环境变量 3.开始安装 ​编辑4.打开cmd命令行 5.Navicat测试连接 1.下载安装包mysql8.0.20 MySQL :: Download MySQL Community Server (Archived Versions) 2.配置MySQL环境变量 3.开始安装 将压缩包安装到指定路径 编辑my.ini文件…

一起Talk Android吧(第五百五十八回:lombok用法)

文章目录 1. 概述2. 使用方法3. 内容总结 各位看官们大家好&#xff0c;上一回中介绍了如何获取文件读写权限的知识,本章回中将介绍lombok相关的知识。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android吧&#xff01; 1. 概述 这是一个java库&#xff0c;用来…

[系统安全] 六十.威胁狩猎 (1)APT攻击检测及防御与常见APT组织的攻击案例分析

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…

踏上R语言之旅:解锁数据世界的神秘密码(五)

线性与非线性模型及R使用 文章目录 线性与非线性模型及R使用一、数据的分类与模型选择1.变量的取值类型 二、广义线性模型广义线性模型概述Logistic模型 总结 一、数据的分类与模型选择 1.变量的取值类型 因变量记为y&#xff0c;解释变量记为x1&#xff0c;x2,… 因变量y一般…

Coursera: An Introduction to American Law 学习笔记 Week 05: Criminal Law

An Introduction to American Law 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 05: Criminal LawKey Criminal Law TermsSupplemental Re…

边沿JK触发器

边沿JK触发器 电路组成 & 逻辑符号 工作原理 Q n 1 D Q^{n1}D Qn1D J Q n ‾ K Q n ‾ \overline{\overline{JQ^n}KQ^n} JQn​KQn​ ( J Q n ) ( K ‾ Q n ‾ ) (JQ^n)(\overline{K}\overline{Q^n}) (JQn)(KQn​) J K ‾ J Q n ‾ K ‾ Q n Q n ‾ Q n J\over…

解救应用启动危机:Spring Boot的FailureAnalyzer机制

目录 一、走进FailureAnalyzer 二、在Spring Boot中如何生效 三、为什么可能需要自定义FailureAnalyzer 四、实现自定义基本步骤 &#xff08;一&#xff09;完整步骤要求 &#xff08;二&#xff09;注册方式说明 通过Spring Boot的spring.factories文件&#xff08;建…